Метод OnQueryDragIcon
Пользователь может “перетащить” пиктограмму минимизированного приложения. Если пользователь производит это действие с пиктограммой окна, для класса которого не определена пиктограмма, то вызывается метод OnQueryDragIcon. Этот метод должен вернуть идентификатор курсора мыши, который будет отображаться в момент “перетаскивания” пиктограммы окна.
В переопределенном методе OnQueryDragIcon средство AppWizard просто возвращает идентификатор пиктограммы приложения.
Обзор возможностей ClassWizard
Средство ClassWizard предоставляет широкий спектр услуг. Он позволяет не только добавлять к классу новые методы и данные, его можно использовать для добавления нового метода, служащего для обработки сообщений, переменной, предназначенной для обмена информацией с полями диалоговой панели. Для запуска ClassWizard выберите в меню View команду ClassWizard.
Создание нового класса.
При помощи ClassWizard можно добавить новый класс, созданный на основе базовых классов. В качестве базового класса можно использовать разные классы, наследованные от классов, предлагаемых ClassWizard. Другие классы надо создавать вручную, непосредственно в текстовом редакторе. Для создания нового класса нажмите кнопку AddClass. Укажите имя нового класса (желательно начать имя с буквы С), выберите базовый класс. ClassWizard создаст два новых файла: один типа h, а другой типа cpp.
Полученная заготовка класса полностью работоспособна. Ее можно дополнить по своему усмотрению новыми методами и данными. Эту работу можно выполнить вручную, но гораздо лучше и проще воспользоваться услугами ClassWizard. За счет использования ClassWizard процедура создания собственного класса значительно ускоряется и уменьшается вероятность совершить ошибку во время объявления методов.
Включение в класс новых методов.
Очень удобно использовать ClassWizard для включения в состав класса новых методов. Можно добавлять к классу методы, служащие для обработки сообщений Windows и команд от объектов, а также методы, переопределяющие виртуальные методы базовых классов.
ClassWizard не только позволяет добавить в класс новые методы, но и удалить их. ClassWizard самостоятельно удалит объявление метода из класса, но удалить определение метода вам придется вручную.
Выберите из списка ClassName имя класса, к которому нужно добавить новые методы. Установите закладку MessageMaps. Теперь выберите из списка Objects ID идентификатор объекта, для которого надо создать обработчик сообщения. В списке Nessages будут перечислены те сообщения, которые этот объект будет вырабатывать сообщения. Выберите то сообщение, которое надо обработать, нажмите кнопку AddFunction. Укажите название метода. ClassWizard добавит описание нового метода в класс, Сформирует шаблон для этого метода. Конечно, текст метода вы должны будете изменить вручную.
Включение в класс новых элементов данных.
ClassWizard позволяет включать в класс не только новые методы, но и элементы данных, связанные с полями диалоговых панелей, форм просмотра и форм для просмотра записей баз данных и полей наборов записей. ClassWizard использует специальные процедуры, чтобы привязать созданные им элементы данных к класса к полям диалоговых панелей. Эти процедуры носят названия "обмен данными диалоговой панели" и "проверка данных диалоговой панели" (Dialog Data Exchange and Dialog Data Validation - DDX/DDV.
Процедуры DDX/DDV значительно упрощают программисту работу с диалоговыми панелями. Они позволяют связать поля диалоговых панелей и переменные. Когда пользователь редактирует поля диалоговых панелей, процедуры DDV проверяют введенные значения и блокируют ввод запрещенных значений. Затем процедуры DDX автоматически копируют содержимое полей диалоговых панелей в привязанные к ним элементы данных класса. И наоборот, когда приложение изменяет элементы данных класса, привязанные к полям диалоговой панели, процедуры DDX могут сразу отобразить новые значения полей на экране компьютера.
Выберите из списка ClassName имя класса, к которому нужно добавить новые методы. Установите закладку MemberVariables. Теперь из списка Control IDs выберите идентификатор органа управления, для которого создается переменная. Можно нажатием на кнопку AddVariable запустить диалог. В элементе MemberVariabkeName введите имя переменной, выберите категорию , а затем тип переменной. Список Category определяет, будет переменная значением элемента (Value) или самим элементом (Control).
Задания к работе.
Создать приложение calc (калькулятор), использующее в качестве главного окна диалоговую панель.
Создать приложение TestDialog, использующее в качестве главного окна диалоговую панель. Приложение должно включать различные элементы Windows и обеспечивать управление ими и получение информации от них (индикатор, анимационный элемент, спин, ListCtrl, TreeCtrl). Выбрать один или несколько контрольных элементов по согласованию с преподавателем.