www.adept7.kiev.ua
| Форум| Гостевая| Ссылки| Программы| Исходные тексты| Наши партнеры.|
   
| Главная| Рассылки| Услуги| Библиотека| Новости| Авторам| Программистам| Студентам|
delphi c++ assembler
  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
 

Rambler's Top100 Rambler's Top100

©  Adept Design Studio

Используются технологии uCoz