ComboxBox b 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 мой обработчик почемуто не запускается.
Цитата:
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 мой обработчик почемуто не запускается.
В 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();
Прикол заключается в том, что Attach() хоть и присоиденяет класс к окну но не направляет сообщения через его карту сообщений, а если присоиденить методом SubclassWindow то сообщения идут через его карту.
Но всёравно огромное спасибо:) :) :)