четверг, 27 ноября 2008 г.

Message Mapping в VS2005

Как связывать сообщения Windows с членами класса в Visual Studio 2005 ?

(нетривиальный вопрос, в одном форуме видел, толком человеку не ответили).

Открываем файл с объявлением класса (.h)
Идем в меню View -> Other Windows -> Properties Window (Alt + Enter)
Нажимаем кнопку Messages
Тыкаем на нужное сообщение - в классе создается функция-член со стандартным названием
(WM_CHAR<->OnChar)

В начале имплементации классов - частей приложения Visual C++ (объект вида, документа и т.д.) есть секции связывания, там можно руками прописать:

BEGIN_MESSAGE_MAP(CMyView, CView)
// 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)

ON_WM_CHAR()

END_MESSAGE_MAP()

Комментариев нет: