Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > CEdit из другого класса


Автор: Elizaveta85 31.5.2013, 23:41
Здравствуйте!
У меня есть класс CnotepadDlg, где есть форма. На этой форме элемент edit класса CEdit . 
Мне нужно при нажатии на Enter не только перейти на новую строку, но и напечатать номер строки, например

1. 
2. 
3. 
...

Если я правильно поняла, то мне нужно создать отдельный класс, где буду отлавливать событии от клавиатуры. 

1. Можно ли это сделать не создавая другой класс?
2. Создала отдельный класс ClEdit и указала что базовым классом является CDialog. Сложность в том, что я не могу получить доступ к CEdit. Что мне для этого нужно?
3. Есть ли похожие примеры? В MSDN пока не понятно где смотреть, да и пока тяжеловато.

Автор: Earnest 3.6.2013, 07:46
Класс нужен только родительскому окну, для эдита создавать его не нужно.
Допустим, есть окно (pWnd), а на нем дочерний элемент edit с ид-ром IDC_EDIT.
При вводе любого символа в эдит родительское окно pWnd получает уведомление EN_CHANGE. Чтобы его отловить, в карту родительского окна нужно добавить соответствующий обработчик (ON_EN_CHANGE)
Доступ к эдиту можно получить через родительское окно pWnd->GetDlgItem (IDC_EDIT).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)