Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ComboxBox b Edit

2.1K
01 апреля 2003 года
Chipa
7 / / 27.11.2002
В ComboBox содержится объект Edit, кто знает как к нему достучаться?
Отзовись!!!!!

я делал так:
class CComboBox11: public CComboBoxEx{
CEditNew editNew;
...
};
...
int CComboBox11::OnCreate( LPCREATESTRUCT lpCreateStruct )
{
if( CComboBox::OnCreate(lpCreateStruct) == -1 ) return -1;

CEdit *edt = GetEditCtrl();
editNew.Attach( edt->Detach() );

return 0;
}
В классе CEditNew переопределил обработчик OnChar,
но когда я ввожу символы в ComboBox мой обработчик почемуто не запускается.
2.9K
01 апреля 2003 года
koks
19 / / 01.04.2003
Цитата:
Originally posted by Chipa
В ComboBox содержится объект Edit, кто знает как к нему достучаться?
Отзовись!!!!!

я делал так:
class CComboBox11: public CComboBoxEx{
CEditNew editNew;
...
};
...
int CComboBox11::OnCreate( LPCREATESTRUCT lpCreateStruct )
{
if( CComboBox::OnCreate(lpCreateStruct) == -1 ) return -1;

CEdit *edt = GetEditCtrl();
editNew.Attach( edt->Detach() );

return 0;
}
В классе CEditNew переопределил обработчик OnChar,
но когда я ввожу символы в ComboBox мой обработчик почемуто не запускается.



Мне кажется лучше использовать функции типа SubclassDlgItem или SubclassWindow. Таким образом, ты уверенно передашь управление своему классу.
Можно сделать так:
int CComboBox11::OnCreate( LPCREATESTRUCT lpCreateStruct )
{
if( CComboBox::OnCreate(lpCreateStruct) == -1 ) return -1;

CEdit *edt = GetEditCtrl();
editNew.SubclassWindow(edt->GetSafeHwnd());

return 0;
}

Ну и потом соответственно в OnDestroy
editNew.UnsubclassWindow();

2.1K
02 апреля 2003 года
Chipa
7 / / 27.11.2002
Ты абсолютно прав( я сегодня утром разобрался).
Прикол заключается в том, что Attach() хоть и присоиденяет класс к окну но не направляет сообщения через его карту сообщений, а если присоиденить методом SubclassWindow то сообщения идут через его карту.

Но всёравно огромное спасибо:) :) :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог