Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


Я не совсем понима, в чём проблема-то?

Пример. Делаем mfc-проект, диалоговый. На диалог кладём richedit. Заходим в класс-визард. Там выбираем IDC_RICHEDIT1 и говорим, что будем обрабатывать его EN_CHANGE. На тут же создают:
Код: Выделить весь код
void CTestDlg::OnChangeRichedit1() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CDialog::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	// TODO: Add your control notification handler code here
	
}
Пишите там, что угодно.

Можно отследить, что и где прописывает класс-визард при этом.

А именно он делает:
Код: Выделить весь код
BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
	//{{AFX_MSG_MAP(CTestDlg)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_EN_CHANGE(IDC_RICHEDIT1, OnChangeRichedit1)    <------------ в имплементейшене
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()
и
Код: Выделить весь код
	// Generated message map functions
	//{{AFX_MSG(CTestDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnChangeRichedit1();         <------------ в хидере
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
Что не понятно?

Отправлено: 14:20, 26-01-2005 | #8