Cтраница 2
![]() |
Обработчики сообщений, определяемые мастером ClassWizard для команд Cut, Copy и Paste меню Edit. [16] |
Обработчик сообщения COMMAND команды Paste вставляет содержимое буфера обмена в текущий документ. В противном случае программа может вставить графические данные в произвольное место окна представления и выделить их для перемещения в желаемую позицию. Такую возможность полезно реализовать в программе рисования. [17]
Обработчик сообщений COMMAND команды Cut должен удалить графические данные из документа. [18]
Когда обработчик сообщения WM VSCROLL, предоставляемый классом CScrollView, обрабатывает это сообщение, он прокручивает текст на одну строку вниз. [19]
Создав обработчик сообщения WN KEYDOWN, посылаемого при нажатии какой-либо клавиши ( кроме системной), можно читать данные, вводимые с клавиатуры. Обработчик передает виртуальный код клавиши, идентифицирующий ее. [20]
![]() |
Общее диалоговое окно Color, отображенное программой MiniDraw. [21] |
Эти обработчики сообщений меню работают так же, как обработчики, добавленные в программу в гл. [22]
Запись обработчиком сообщений в специальное ноле, выделяемое в каждом сообщении, информации о физических и логических ошибках, возникающих во время передачи сообщения по линии связи или во время последующей его обработки и постановки в очередь. [23]
Необходимо определить обработчик сообщения OnCancel для класса диалогового окна. Если диалоговое окно содержит кнопку ОК. IDOK), то необходимо определить обработчик сообщения опок. Эти функции описаны во врезке Закрытие диалогового окна в этой главе. Однако для немодального диалогового окна названные функции вызывают функцию DestroyWindow, закрывающую диалоговое окно, и не должны вызывать обработчик сообщения базового класса. Версии функций базового класса OnCancel и ОпОК вызывают функцию EndDialog, скрывающую диалоговое окно, но не уничтожающую его. Заметьте: при использовании мастера ClassWizard для определения переменных класса диалогового окна функция ОпОК должна была бы вызвать функцию CWnd: : UpdateDate, передавая ей значение TRUE или вызывая ее без параметров, чтобы сохранить и проверить содержимое элементов управления. В модальном диалоговом окне эта задача выполняется версией функции ОпОК базового класса. [24]
![]() |
Логические координаты в сравнении с координатами устройства ( документ прокручен вниз на 75 пикселей. [25] |
Аналогично измените обработчики сообщений мыши OnMouseMove и OnLButtonUp. Эти функции создают объект контекста устройства; следовательно, необходимо добавить обращения к функциям OnPrepareDC и DPtoLP. [26]
Например, следующий обработчик сообщений COMMAND для команды Сору создает растровое изображение с текущим содержимым окна представления. Затем он добавляет его в буфер. [27]
![]() |
Завершенное меню Edit в редакторе меню.| Значок в программе Echo на прилагаемом компакт-диске, отображенный в. [28] |
Для определения обработчиков сообщения в диалоговом окне мастера ClassWizard откройте вкладку Message Maps, а в списке Class name выберите класс CEchoview, чтобы функции, обрабатывающие сообщения, были добавлены в класс представления. Это необходимо, чтобы окно представления получило данные сообщения. [29]
Следующий пример обработчика сообщения COMMAND для команды Сору ( определенной как функции класса представления) иллюстрирует действия, описанные в разделе. [30]