|
http://tikitak.narod.ru ---- Главная страница сайта
Шаг 40 - Как волшебник связывает кнопку с событием
Создание проекта
Мы воспользуемся проектом с которым ведем работу. Удалите с диалоговой панели всё кроме кнопки OK, и создайте свою кнопку Send с идентификатором IDC_BUTTON1, код работы с реестром тоже лучше удалить. Я приведу полный текст кода для простоты понимания.
Создаем код
#include "afxwin.h"
#include "resource.h"
class CTestDlg : public CDialog
{
public:
CTestDlg(CWnd* pParent);
void OnSend();
protected:
virtual BOOL OnInitDialog();
DECLARE_MESSAGE_MAP();
};
BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
ON_BN_CLICKED(IDC_BUTTON1, OnSend)
END_MESSAGE_MAP()
CTestDlg::CTestDlg(CWnd* pParent)
:CDialog(IDD_DIALOG1, pParent)
{
}
void CTestDlg::OnSend()
{
AfxMessageBox("Clicked !");
}
BOOL CTestDlg::OnInitDialog()
{
CDialog::OnInitDialog();
return TRUE;
}
class CTestApp : public CWinApp
{
public:
virtual BOOL InitInstance();
};
BOOL CTestApp::InitInstance()
{
CTestDlg dlg(NULL);
dlg.DoModal();
return FALSE;
}
CTestApp theApp;
Описание
Итак раз нажатие кнопки вызовет реакцию, то для реализации реакции необходима процедура вот её OnSend я и описал в классе диалогового окна. DECLARE_MESSAGE_MAP() Вам знакома. ON_BN_CLICKED(IDC_BUTTON1, OnSend) Вам знакома из Шага 16. И наконец реализация.
Этот шаг простой и вероятно не очень важный, но AppWizard делает именно так, когда вы устанавливаете реакцию на событие нажатие кнопки, и если Вы должны понимать как это происходит , кроме того он умеет далеко не всё :-).
Шпаргалка
Связь события нажатия устанавливаеться через обработку
BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
ON_BN_CLICKED(IDC_BUTTON1, OnSend)
END_MESSAGE_MAP()
Предыдущий Шаг | Следующий Шаг | Оглавление By Artem.
Используются технологии uCoz
|