Я создаю гибридную форму 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
Любые советы высоко ценится!
Элемент редактирования должен показывать курсор, когда он получает фокус. Поэтому вызовите SetFocus, чтобы перенести фокус в элемент управления редактирования.
Я закончил тем, что смог решить ее, позволив своему случаю WM_CTLCOLOREDIT провалиться и вернуть стандартный процесс окна. Я предполагаю, что упустил что-то, что мне нужно было сделать в этом случае.