Win32 редактирования управления не имеет каретки

Я создаю гибридную форму win32 / D2D и пытаюсь создать элемент управления для редактирования. Я, должно быть, упускаю что-то глупое, потому что моя каретка не появляется и не отвечает на ShowCaret (). Код, который создает поле и код из WndProc, приведен ниже:

Создание:

HWND usernamebox = CreateWindowEx(WS_EX_CLIENTEDGE,L"EDIT",L"", WS_CHILD|WS_VISIBLE, 90,105,250,25,hwnd,(HMENU)1,hinst,NULL);
/*Create a Segoe UI font f, etc.*/
SendMessageW(usernamebox,WM_SETFONT,WPARAM(f),NULL);

WndProc:

case WM_CTLCOLOREDIT: {
SetTextColor((HDC)wpa,RGB(84,84,84));
return (LRESULT)editbrush; //a white hbrush

Любые советы высоко ценится!

0

Решение

Элемент редактирования должен показывать курсор, когда он получает фокус. Поэтому вызовите SetFocus, чтобы перенести фокус в элемент управления редактирования.

0

Другие решения

Я закончил тем, что смог решить ее, позволив своему случаю WM_CTLCOLOREDIT провалиться и вернуть стандартный процесс окна. Я предполагаю, что упустил что-то, что мне нужно было сделать в этом случае.

0