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 исходников
  Весь сайт целиком можно загрузить по ссылкам из раздела Скачать

 76 - Тренировка - приложение Pr3 / MFC шаг за шагом / Visual C++

Шаг 76 - Тренировка - приложение Pr3

Создание проекта

Запускаем VC и AppWizard. Имя приложения pr3 выбираем приложение на базе одного документа и сразу Finish. Мы с Вами будет создавать отклик на сообщение Windows в нашей программе. Выбираем класс. Правой кнопкой мыши вызываем свойства. Дальше Add Windows Message Handles. Вы выбираем сообщения. Щелкаем по нему. Справа в окне появиться выбранное сообщение. Выбираем его и говорим Add Handler.

76_1.gif (24255 b)

Создаем код

Изменим код для того, чтобы вызвать окно сообщения в момент вызова данной функции.

void CPr3View::OnSize(UINT nType, int cx, int cy) 
{
CView::OnSize(nType, cx, cy);
AfxMessageBox("WM_SIZE"); // в момент обработки сообщения появиться диалоговое окно
}

Cоздайте обработку сообщения WM_KILLFOCUS

void CPr3View::OnKillFocus(CWnd* pNewWnd) 
{
CView::OnKillFocus(pNewWnd);
AfxMessageBox("WM_KILLFocus"); // в момент обработки сообщения появиться диалоговое окно
}

Описание

Скомпилируйте и запустите. Каждый раз, когда вы будете переключаться на другое окно появится это сообщение. Оно так же появится при закрытии программы. Проверьте сами. Кроме того сообщение WM_SIZE будет появляться каждый раз при изменение размера окна, кстати при создании приложения тоже.

Что происходит при проведении всех этих процедур? Добавляются описания функций в заголовочном файле класса.

class CPr3View : public CView
{
...........
// Generated message map functions
protected:
//{{AFX_MSG(CPr3View)
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnKillFocus(CWnd* pNewWnd);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};

В таблице обработки сообщений добавляются записи.

BEGIN_MESSAGE_MAP(CPr3View, CView)
//{{AFX_MSG_MAP(CPr3View)
ON_WM_SIZE()
ON_WM_KILLFOCUS()
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()

В файле реализации создаются функции.

/////////////////////////////////////////////////////////////////////////////
// CPr3View message handlers

void CPr3View::OnSize(UINT nType, int cx, int cy)
{
CView::OnSize(nType, cx, cy);
}
void CPr3View::OnKillFocus(CWnd* pNewWnd)
{
CView::OnKillFocus(pNewWnd);
}

Шпаргалка

Можно обрабатывать любые сообщения Windows самостоятельно.


Загрузить проект | | |
Автор Каев Артем.
[AD]