
- •1.Стандартный внешний вид окна приложения Windows.
- •1. Рамка
- •3. Интерфейс Visual Studio. Ресурсы приложения.
- •4. Интерфейс Visual Studio. Окно вывода Output.
- •Окно редактирования текстов программ
- •5. Система меню. Меню File, Edit, View.
- •Advanced… вывод на экран еще одного меню.
- •6. Система меню. Меню Insert, Project.
- •7. Система меню. Меню Build, Tools. Меню Build
- •8. Мастер создания приложения. Шаг 1,2.
- •9. Мастер создания приложения. Шаг 3,4.
- •10. Мастер создания приложения. Шаг 5,6,7.
- •11. Диалоговые окна и элементы управления
- •12. Формирование нового ресурса диалогового окна.
- •13. Задание идентификаторов диалогового окна.
- •14. Организация вывода диалогового окна на экран.
- •15.Использование элемента управления типа список
- •Некоторые методы класса cListBox
- •16. Комбинированные списки (класс cCombobox).
- •17. Использование элементов типа переключатель Статические поля (класс static). Окна редактирования Edit Box. Методы класса cEdit.
- •19. Обработка сообщений. Карты сообщений.
- •Некоторые макросы карты сообщений
- •20.Реал-ция обр-ки сообщ-й с пом.ClassWizard. Виды сообщ-й.
- •Вкладки диалогового окна ClassWizard.
- •Какой класс должен перехватывать сообщение
- •Список сообщений
- •21. Команды. Реал-ция обр-ки команд с помощью ClassWizard
- •Обновление команд.
- •22. Архитектура «Документ/представление».
- •23. Вывод на экран. Контекст устройства. Классы контекстов устройства в mfc.
- •24.Классы изобразительных средств. Примеры рисования простейших фигур.
- •Рисование простейших фигур (пример)
- •Изменение размеров и положения окна
- •25. Использование перьев. Работа с кистью.
- •Работа с кистью
- •26. Концепция сохран.-восстановл. Объектов. Необходимые действия по сохр.-востан. Объектов класса cDocument. Разбор примера с сериализацией в классе документа.
- •Создание класса, обеспечивающего сериализацию данных
- •27. Создание класса, обеспечивающего сохран.-восстан. Объектов. Разбор примера с сериализацией cMessage. Создание класса, обеспечивающего сериализацию данных
- •28. Непосредственное чтение и запись файлов. Класс сFile. Методы сFile. Режимы доступа к файлу.
- •29. Использование на примере основных методов класса cFile (открыть, записать, считать из файла). Использование стандартн. Диалог. Панелей для открытия и записи в файл.
- •30.Панель инструментов и строка состояния. Создание панели инструментов. Добавление и удаление пиктограмм.
- •31.Разработка ф-ций обработки сообщений, связ-х с пиктограммой на панели инструм-в. Класс панели инстр-в.
- •32. Доступ к базам данных в vs. Классы odbc.
- •34. Регистрация бд. Создание заготовки приложения.
- •35.Создание экранной формы для отображ-я содерж-го бд.
- •36.Добавление и удаление записей.
- •37. Сортировка и фильтрация записей.
- •3)Атрибуты данных
- •4) Операции
- •43.Класс cRecordset. Компоненты данных и осн.Методы (открытие набора, получ-е атрибутов результ. Набора IsOpen, IsBof, IsEof, IsDeleted, обновл-е результ. Набора)
- •1)Компоненты данных
- •2)Конструирование
- •44.Класс cRecordset. Компоненты данных и осн.Методы (операции перемещения пo результир-му набору, операции IsFieldDirty, IsFieldNull, Requary, SetFieldDirty, SetFieldNull).
- •1)Компоненты данных
- •45. Класс cRecordset. Переопределяемые методы (DoFieldExchange, GetDefoltSql, GetDefoltConnect).
- •46.Класс cRecordView.
- •1)Создание объекта
- •2)Атрибуты данных
- •47. Основные технологии com. Автоматизация. Перманентность. Моникеры.
- •48. Единообразная передача данных и объекты с подключением.
- •49. Технология ado. Объектная модель, наборы ado.
- •50. Применение ado Data Control и DataGrid Control.
- •2.2. Методические указания
- •51. Удаление, добавление и редактирование записей в технологии ado
- •52.Настройка Эл-тов упр-ния ado Data Control и DataGrid Control из кода приложения
- •53. Возможности AppWizard по созданию приложений, поддерживающих технологию ActiveX.
- •54.Библиотеки динамической компоновки dll
- •55.Создание и использование 32-битовых динамически связываемых библиотек
- •56. Создание рабочего потока. Управление приоритетами потоков
- •57. Синхронизация потоков. Объекты синхронизации и классы mfc.
- •Объекты синхронизации и классы mfc.
- •58.Отладка программ в vs. Точка останова. Установка точек останова. Команды и окна отладки.
- •Терминология отладки
- •Команды и окна отладки
- •Команды меню
- •Установка точек останова
- •Другие окна для отладки
- •Окно Memory
- •Применение утилиты mfc Tracer
- •59. Отладка программ в vs. Анализ значений переменных. Окно CallStact.
12. Формирование нового ресурса диалогового окна.
Первый шаг процесса организации диалогового окна в приложении – формирование ресурса окна. Когда Windows видит ресурс окна в программе, она использует команды из этого ресурса для конструирования работающего окна. Чтобы приступить к формированию ресурсов, необходимо выбрать пункт Insert Resource из меню Visual Studio – появится диалоговое окно Insert Resource (Cntl+R). Дважды щелкните на элементе Dialog в окне Resource Type – этим вызывается редактор диалогового окна, который выводит на экран заготовку окна.
Вызываем на экран диалоговое окно Dialog Properties для вновь создаваемого диалогового окна, выбрав в меню View\Properties или щёлкнув правой кнопкой мыши на диалоговом окне. В поле Caption (Надпись) вводим заголовок диалога.
Выбор элементов управления для диалогового окна достаточно велик. Для установки элементов диалогового окна используется технология, получившая наименование WYSIWYG (What You See Is What You Get) что видишь, то и получишь. Чтобы установить в своем окне кнопку, нужно выбрать ее образец на поле инструментария, перетянуть в желаемое место на поле заготовки окна приложения и сбросить ее там и заменить надпись.
Характеристика основных Windows-элементов управления, используемых для построения диалога:
надпись (static text) – по существу, это "неполноценный" элемент управления, поскольку он используется только как поле для вывода надписи, относящейся к "настоящему" элементу управления, расположенному рядом;
текстовое поле (edit box) – может быть однострочным или многострочным; сюда пользователь может ввести текст;
кнопка (button) – данный элемент предназначен для начала каких-либо действий после нажатия на неё;
флажок (check box) – используется для установки опций, каждая из которых может быть выбрана независимо от других;
переключатель-радиокнопка (radio button) – используется для выбора одной из групп связанных опций; если выбрана одна из них, то другие полагаются невыбранными;
список (list box) – используется для выбора одного элемента из заранее подготовленного набора; набор может быть как жестко установленным на этапе разработки программы, так и меняться программно в процессе выполнения приложения; главное – пользователь по своей воле не может непосредственно менять элементы в наборе, он может только их выбирать;
поле со списком (Combo box) – это комбинация текстового поля и списка; такой элемент управления позволяет пользователю не только выбирать элементы из ранее подготовленного набора, но и самостоятельно пополнять его, непосредственно внося необходимый текст в текстовое поле.
13. Задание идентификаторов диалогового окна.
Поскольку каждое диалоговое окно в приложении является уникальным объектом, разработчику практически всегда нужно присваивать окнам и элементам управления, входящим в их состав, идентификаторы по собственному выбору. Конечно, можно согласиться и с теми идентификаторами, которые предлагает редактор диалоговых окон по умолчанию. Они не несут смысловой нагрузки (как правило, нечто вроде IDD_DIALOG1, IDC_EDIT1, IDC_RADI01) и их можно заменить другими, связанными с назначением и функциями окна или элемента. Но в любом случае рекомендуется соблюдать соглашение о префиксах: идентификаторы диалоговых окон имеют префикс IDD_, а идентификаторы элементов управления – IDC_. Заменить идентификатор можно с помощью диалогового окна Dialog Properties. Для этого выберите элемент управления или диалог и Edit Properties, если ранее окно Dialog Properties не было выведено и закреплено на экране. Затем измените идентификатор ресурса в поле ID.
Создание диалогового окна Dialog
Установите элементы управления на поверхности диалога. Для этого щелкните мышью на пиктограмме соответствующего элемента управления, а затем щелкните на форме в том месте, где будет расположен этот элемент. Можно изменять границы размеров элемента. В поле Caption м.изменить надписи для переключателей. Чтобы выровнять включенные в окно элементы (выстроить их в колонку), выберите один из них, а затем, нажав и удерживая клавишу <Ctrl>, выберите по очереди остальные. После этого выберите в меню Lay-Out\Align Control Left, затем выберите команду Lay-Out\Space Evenly\Down (Размещение\Подравнять интервал\Вниз). Эта команда позволяет установить одинаковый интервал между элементами по вертикали. Вызовите окно Dialog Properties и установите в нем флажок Group (Группа). Такая установка означает, что переключатель является первым элементом группы переключателей, т.е. именно к переключателям, объединенным в группу, будет в дальнейшем применяться принцип «только один прав». Для элемента типа список выберите вкладку Styles (Стили) и флажок Sort (Сортировка). Если этот флажок установлен, то при выполнении программы элементы в списке будут отсортированы по алфавиту.
Создание класса диалогового окна.
Когда формирование ресурсов диалогового окна будет завершено, вызовите на экран диалоговое окно мастера ClassWizard. Для этого нужно выбрать View\ClassWizard. Мастер ClassWizard обнаружит новый диалог и предложит создать новый класс. Установите переключатель Create a new class (создать новый класс) и щелкните на ОК. Появится новое диалоговое окно New Class (новый класс). В поле Name (имя) введите имя нового класса (например, CSDIDialog) и щелкните на ОК. После этого ClassWizard создаст новый класс, подготовит файл текста программы Dialog.cpp и файл заголовка Dialog.h и включит их в состав проекта.
Создание ассоциированных переменных.
Ассоциированная переменная позволяет установить связь между текстом программы и ресурсами окна. Она задается в ClassWizard на закладке Member Variables и соответствует либо значению - содержимому элемента управления, либо объекту класса соответствующего данному типу элемента управления. Пример ассоциативной связи: элементу IDC_CHECK1 следует присвоить идентификатор переменной m_check. Нужно проверить, чтобы в раскрывающемся списке Category (Категория) было выбрано Value (Значение). Если вы раскроете список Variable type (Тип переменной), то увидите, что вам предоставлен единственный "свободный" выбор – BOOL. Флажок может быть либо установлен, либо сброшен, а значит, ассоциирован только с переменной типа BOOL, которая принимает только два значения – TRUE и FALSE.
Типы переменных, которые могут быть ассоциированы с тем или иным типом элемента управления:
текстовые поля –строковый тип(CString), но иногда и другие – int, fIoat и Iong; кнопки – int; флажки – BOOL; переключатели – int;
список – строковый тип; поле со списком – строковый тип; полоса прокрутки – int .
Таким же образом значение, которое содержится в элементе IDC_EDIT1, связывают с членом-переменной m_edit типа CString. Элемент IDC_LIST1 должен быть связан с членом-переменной m_list, который должен быть объектом класса CListBox (в списке Category должно быть избрано Control).
После добавления переменных ClassWizard предложит установить параметры, которые могут быть использованы для проверки достоверности ввода данных. Это делается не для всех видов переменных. Но, например, если речь идет о переменной, связанной с текстовым полем, СlassWizard предлагает в поле Maximum Characters (Максимум символов) установить максимальную длину вводимой строки. Если текстовое поле ассоциировано с переменной типа int или float, ClassWIzard использует эту же часть окна для установки верхнего и нижнего пределов вводимого пользователем значения. В дальнейшем всю работу по проверке соответствия введенного значения установленным ограничениям и выдачу в случае их нарушения сообщения с просьбой повторить ввод берут на себя функции из библиотеки MFC.
Использование класса диалогового окна
Теперь, когда сформирован ресурс и подготовлен класс окна, можно создавать объект этого класса в программе (методе InitInstance) и выводить на экран связанное с ним диалоговое окно. Выведем диалоговое окно сразу после запуска приложения. Для этого используется функция DoModal().