Cdit не устанавливает фокус автоматически - PullRequest
0 голосов
/ 12 апреля 2019

Я создал бы динамический элемент управления Edit, вызвав функцию конструктора и функцию Create CEdit:

m_pMyEdit = new CEdit;
m_pMyEdit->Create(style,zindex,100,100,100,100,pParentWindow,ID);

Как вы знаете, мы можем передать this параметру родительского окна или установить этот параметр в другом окне. В моем коде я передал параметру родительского окна значение:

CWnd::FromHandle(GetDesktopWindow())

Этот фрагмент кода может получить указатель CWnd (CWnd*) от определенного дескриптора. Теперь запустите программу, и окно «Правка» отобразится в том положении, в котором мы ожидаем, и курсор отобразится в элементе управления «Правка», и фокус будет активирован. Но когда я переместил это редактирование куда-то еще, например, переместил его в:

RECT rect = {200,200,100,100};

каретка исчезает, и фокус исчезает, более того, когда я перемещаю курсор на нее, щелкаю мышью, каретка не появляется и фокус больше не устанавливается. Я читал MSDN снова и снова, но я не знаю, почему это происходит.

Кстати, m_pMyEdit - это переменная CEdit, я еще не получил класс CEdit.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...