C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  Update World C++: Сборник GPL QT исходников
  Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Дебетовая карта Home Credit [CPS] RU

 

Шаг 365 - Класс вида GRID и обработка извещений

В прошлом шаге мы вставили класс GRID в вид, нам нужно обрабатывать события и AppWizard здесь не помощник будем делать ручками. Объявляем в классе вида что у нас будут извещения.

class CTestViewGridView : public CView
{
protected: // create from serialization only
	CTestViewGridView();
	DECLARE_DYNCREATE(CTestViewGridView)
	DECLARE_EVENTSINK_MAP()
// Attributes
public:
	CTestViewGridDoc* GetDocument();

private:
	CMsDgridCtrl cmg;
// Operations
......
};

Реализуем эту таблицу обработки извещений.

BEGIN_EVENTSINK_MAP(CTestViewGridView, CView)
  	ON_EVENT(CMsDgridCtrl, IDC_DBGRID1, -602 /* KeyDown */, OnKeyDownDbgrid1, VTS_PI2 VTS_I2)
END_EVENTSINK_MAP()

Первый параметр это класс, второй идентификатор элемента, его нужно использовать в Create.

int CTestViewGridView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CView::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	CRect rc;
	GetClientRect(&rc);
	cmg.Create(_T("STATIC"), "Hi", WS_CHILD | WS_VISIBLE, CRect(0, 0, 400, 200), this, IDC_DBGRID1);
	cmg.ShowWindow(SW_SHOW); 
	return 0;
}

Дальше идет номер метода, откуда его брать. Проше всего сделать как в "Шаг 363 - Обработка событий DBGRID в VC", получить эту строку и перенести в проект класса с видом. Вообщем передрать можно все кстати и описание функции реакции.

class CTestViewGridView : public CView
{
protected: // create from serialization only
	CTestViewGridView();
	DECLARE_DYNCREATE(CTestViewGridView)
	DECLARE_EVENTSINK_MAP()
// Attributes
public:
......
public:
	afx_msg void OnKeyDownDbgrid1(short FAR* KeyCode, short Shift);
	virtual ~CTestViewGridView();
#ifdef _DEBUG
};

Ну и реализовать саму функцию

void CTestViewGridView::OnKeyDownDbgrid1(short FAR* KeyCode, short Shift)
{
	AfxMessageBox("OK");
}

Запускаем и смотрим:

365_1.gif (6206 b)


| |
Автор Каев Артем.
[AD]





Дебетовая карта Home Credit [CPS] RU