Я создал бы динамический элемент управления 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
.