Я пытаюсь сделать так, чтобы пользователь мог выбирать текст из поля редактирования, доступного только для чтения, но он не видел мигающую вставку. Мне удалось убрать курсор из поля редактирования, но его все еще можно увидеть на мгновение.
Это мой код для подкласса:
LRESULT CALLBACK UserInfoProc (HWND hUserInfoWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData)
{
HideCaret(hUserInfoWnd);
return DefSubclassProc(hUserInfoWnd, uMsg, wParam, lParam);
}
Я знаю, что это небольшой фрагмент кода, но он почти выполняет то, что я хочу.
Итак, что происходит, когда я нажимаю кнопку редактирования, курсор можно увидеть на мгновение (50 мс?). Я хочу, чтобы его вообще не было. Как я могу это сделать? Я хочу, чтобы пользователь по-прежнему мог выбирать текст из редактирования.
HideCaret()
послеDefSubclassProc()
, поскольку на данный момент, если сообщение запускает каретку, оно не будет скрыто до следующего вызова. - person Jonathan Potter   schedule 08.11.2013HideCaret()
когда-либо вызвали бы, если бы я переместил его мимо оператора return? - person Olavi Mustanoja   schedule 08.11.2013DefSubClassProc
, вызываетеHideCaret
и затем возвращаете ... - person Jonathan Potter   schedule 08.11.2013WM_SETFOCUS
запускает отображение каретки. - person Jonathan Potter   schedule 08.11.2013