История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Топ:
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Интересное:
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Для указания сообщений, которые должно обрабатывать приложение, используется макрокоманда включения. Это реализуется описанием (макрокоманда DECLARE_MESSAGE_MAP) очереди сообщений (карты подключения) окна вида
BEGIN_MESSAGE_MAP(моеОКНО, CFrameWnd)
Список макрокоманд включения
END_MESSAGE_MAP().
Макрокоманда включения формируется по правилам
ON_< ИдентификаторСообщения >([СписокПараметров]).
Например, для сообщения LBUTTONDOWN получим ИдентификаторСообщения WM_LBUTTONDOWN, ИмяОбработчика OnLButtonDown, макрокоманда включения ON_WM_LBUTTONDOWN(), прототип функции-обработчика
afx_msg void OnLButtonDown(UINT flags, CPoint loc).
Однако для сообщения COMMAND ИдентификаторСообщения WM_COMMAND, ИмяОбработчика OnCommand, макрокоманда включения ON_COMMAND (ИмяРесурса, ИмяОбработчика)!
Таким образом, для того, чтобы конкретное окно (например, описанное в классе моеОКНО) реагировало на сообщения, необходимо для каждого из сообщений:
- описать в классе окна соответствующий обработчик;
- включить чувствительность окна к этому типу сообщений.
MFC. Основные методы класса CDialog.
1) CDialog - Конструирует объект CDialog
class MY_DIALOG: public CDialog
{
public:
MY_DIALOG (char *DialogName, CWnd *Owner): CDialog(DialogName, Owner) { };
//<afx_msg прототипы обработчиков сообщений>
DECLARE_MESSAGE_MAP()
};
2) Create - Инициализирует объект CDialog
3) DoModal - Вызывает модальное диалоговое окно и завершает работу после его закрытия
MY_DIALOG TheDialog((LPTSTR) IDD_DIALOG1 /*"SampleDialog"*/, this);
TheDialog.DoModal();
4) EndDialog - Закрывает модальное диалоговое окно
TheDialog.EndDialog();
5) OnInitDialog - Переопределяется для проведения дополнительной инициализации диалогового окна
MFC. Основные этапы разработки и управления диалоговым окном.
1) Создать файл описания ресурсов (или просто файл ресурсов *.rc). Для этого выполнить команду ГМ-Project-AddToProject-New-Files, выбрать тип - Resource Script, а в качестве имени файла задать <ИмяПриложения>. Автоматически к проекту будет добавлен Resource Script файл с именем <ИмяПриложения>.rc>. Подключить файл описания ресурсов к приложению посредством команды #include "resource.h".
2) Создать новый ресурс - диалоговое окно. Добавить ресурс к проекту командой ГМ-Insert-Resource-Dialog.
3) Отредактировать внешний вид (облик) окна. Настроить окно (свойства окна), например, сохранить стиль (Style) Popup и (Border) Dialog Frame (или Resizing!).
4) Описать пользовательский класс MY_DIALOG для создания экземпляров пользовательских диалоговых окон. Для этого в тексте каркаса приложения описать класс MY_DIALOG, обслуживающий диалоговое окно <ID_имя_диалогового_окна>, как производный от библиотечного класса MFC - CDialog. Описать конструктор MY_DIALOG (char *DialogName, CWnd *Owner), где DialogName - ID-имя диалогового окна, Owner - его владелец (здесь, как правило, текущее окно, т.е. this).
class MY_DIALOG: public CDialog
{
public:
MY_DIALOG (char *DialogName, CWnd *Owner): CDialog(DialogName, Owner) { };
//<afx_msg прототипы обработчиков сообщений>
DECLARE_MESSAGE_MAP()
};
BEGIN_MESSAGE_MAP (MY_DIALOG, CDialog)
//<указание типов обрабатываемых сообщений и имен их обработчиков>
END_MESSAGE_MAP()
5) Подключить диалоговое окно к приложению. Диалоговое окно создается и запускается следующим образом:
MY_DIALOG TheDialog((LPTSTR) IDD_DIALOG1, this);
TheDialog.DoModal();
MFC. Описание пользовательского класса для работы с диалоговым окном.
Описать пользовательский класс MY_DIALOG для создания экземпляров пользовательских диалоговых окон можно следующим образом.
class MY_DIALOG: public CDialog
{
public:
MY_DIALOG (char *DialogName, CWnd *Owner): CDialog(DialogName, Owner) { };
DECLARE_MESSAGE_MAP()
};
BEGIN_MESSAGE_MAP (MY_DIALOG, CDialog)
//<указание типов обрабатываемых сообщений и имен их обработчиков>
END_MESSAGE_MAP()
MY_DIALOG - наследуемый пользовательский класс от класса CDialog, обслуживающий диалоговое окно <ID_имя_диалогового_окна>, как производный от библиотечного класса MFC - CDialog. MY_DIALOG (char *DialogName, CWnd *Owner) - конструктор класса MY_DIALOG, где DialogName - ID-имя диалогового окна, Owner - его владелец (здесь, как правило, текущее окно, т.е. this).
MFC. Пример описания пользовательского класса для работы с диалоговым окном.
Описать пользовательский класс MY_DIALOG для создания экземпляров пользовательских диалоговых окон можно следующим образом.
class MY_DIALOG: public CDialog
{
public:
MY_DIALOG (char *DialogName, CWnd *Owner): CDialog(DialogName, Owner) { };
DECLARE_MESSAGE_MAP()
};
BEGIN_MESSAGE_MAP (MY_DIALOG, CDialog)
//<указание типов обрабатываемых сообщений и имен их обработчиков>
END_MESSAGE_MAP()
MY_DIALOG - наследуемый пользовательский класс от класса CDialog, обслуживающий диалоговое окно <ID_имя_диалогового_окна>, как производный от библиотечного класса MFC - CDialog. MY_DIALOG (char *DialogName, CWnd *Owner) - конструктор класса MY_DIALOG, где DialogName - ID-имя диалогового окна, Owner - его владелец (здесь, как правило, текущее окно, т.е. this).
|
|
|
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
© cyberpedia.su 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!