Я пытаюсь сделать так, чтобы пользователь мог выбрать текст из поля редактирования только для чтения, но он не увидит мигающий карет. Я смог заставить каретку исчезнуть из редактирования, но его все еще можно увидеть на мгновение.C++ win32 скрыть (отключить) каретку из окна редактирования
Это мой код для подкласса:
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()', так как на данный момент, если сообщение вызывает кареткой оно не будет до следующего, что это снова скрывается. –
Ну, это не сработало. Как можно было бы вызывать 'HideCaret()', если бы я переместил его за оператор return? –
Вы не перемещаете его за оператор return, вы сохраняете возвращаемое значение из 'DefSubClassProc', вызываете' HideCaret', а затем возвращаете ... –