- •Уп. 1. Создание оконных приложений Win32
- •1. Определения
- •2. Класс окон
- •2.1. Описание используемых классом окон ресурсов
- •2.2. Пример регистрации класса окон
- •2.3. Функция окна
- •3. Создание окон
- •4. Главная функция приложения
- •5. Создание приложения Win32
- •1.6. Вспомогательные функции создания окон
- •1.6.1. Функции поиска и определения состояния окон
- •1.6.2. Функции перемещения окон
- •1.6.3. Сообщения приложения для пользователя
- •7. Примеры создания окон
- •7.1. Проверка наличия предыдущего экземпляра
- •7.2. Расположение окон черепицей
- •Контрольные вопросы
- •Упражнения
- •Приложение 1
Приложение 1
Таблица 1.1. Список значений стиля класса окон
Значение стиля класса |
Пояснение |
CS_BYTEALIGNCLIENT |
Рабочую область окна выравнивать по границе байта видеопамяти. Это ускоряет перерисовку окна, влияет на размеры окна по оси X |
CS_BYTEALIGNWINDOW |
Все окно выравнивать по границе байта видеопамяти. Этот стиль влияет на размеры окна по оси х |
CS_CLASSDC |
Создать единый контекст отображения для всех окон |
CS_DBLCLKS |
Функция окна будет получать сообщения при двойном щелчке клавишей мыши над рабочей областью |
CS_GLOBALCLASS |
Доступный всем приложениям класс. При создании окон можно игнорировать дескриптор приложения |
CS_HREDRAW |
Рабочую область перерисовывать при изменении ширины окна |
CS_NOCLOSE |
Отключить команду Close в системном меню |
CS_OWNDC |
Создать свой контекст устройства для каждого окна |
CS_PARENTDC |
Окна будут пользоваться контекстом устройства создавшего их окна (родителя) |
CS_SAVEBITS |
Часть окна, затененного другим окном, сохранять в виде битового образа и использовать этот образ для воссоздания этой части при перемещении затеняющего окна |
CS_VREDRAW |
Рабочую область перерисовывать при изменении высоты окна |
Таблица 1.2. Список значений определенных в системе иконок
Значения |
Назначение |
IDI_APPLICATION |
Иконка, назначаемая окну приложения по умолчанию |
IDI_ASTERISK |
Символ i (используется в информативных сообщениях) |
IDI_EXCLAMATION |
Восклицательный знак (используется в предупреждениях) |
IDI_HAND |
Знак STOP (используется при ошибках). |
IDI_QUESTION |
Вопросительный знак (используется в подсказках) |
NULL или IDI_WINLOGO |
Эмблема Windows |
Таблица 1.3. Список значений определенных в системе курсоров мыши
Значение |
Назначение |
IDC_APPSTARTING |
Стандартная стрелка и малые песочные часы |
IDC_ARROW |
Стандартная стрелка |
IDC_CROSS |
Перекрестие |
IDC_IBEAM |
Текстовый курсор в виде I |
IDC_NO |
Перечеркнутый круг |
IDC_SIZEALL |
Четырехсторонняя стрелка |
IDC_SIZENESW |
Двусторонняя стрелка (на северо-восток и юго-запад) |
IDC_SIZENS |
Двусторонняя стрелка (на север и юг) |
IDC_SIZENWSE |
Двусторонняя стрелка (на северо-запад и юго-восток) |
IDC_SIZEWE |
Двусторонняя стрелка (на запад и восток) |
IDC_UPARROW |
Вертикальная стрелка |
IDC_WAIT |
Песочные часы |
Таблица 1.4. Список значений системных цветов
Идентификатор цвета |
Назначение в системе |
COLOR_ACTIVEBORDER |
Рамка активного окна |
COLOR_ACTIVECAPTION |
Заголовок активного окна |
COLOR_APPWORKSPACE |
Фон MDI-окна |
COLOR_BACKGROUND, COLOR_DESKTOP |
Рабочий стол |
COLOR_BTNFACE |
Цвет трехмерных элементов |
COLOR_BTNHIGHLIGHT |
Выбранная кнопка |
COLOR_BTNSHADOW |
Тень трехмерных элементов |
COLOR_BTNTEXT |
Текст надписи кнопки |
COLOR_CAPTIONTEXT |
Текст заголовка окна, кнопок изменения размера и полосы просмотра |
COLOR_GRAYTEXT |
Текст заблокированного элемента |
COLOR_HIGHLIGHT |
Выбранный элемент управления |
COLOR_HIGHLIGHTTEXT |
Текст выбранного элемента |
COLOR_INACTIVEBORDER |
Рамка неактивного окна |
COLOR_INACTIVECAPTION |
Заголовок неактивного окна |
COLOR_INACTIVECAPTIONTEXT |
Текст заголовка для неактивного окна |
COLOR_MENU |
Фон меню |
COLOR_MENUTEXT |
Текст меню |
COLOR_SCROLLBAR |
Внутренняя область полосы просмотра |
COLOR_WINDOW |
Фон окна |
COLOR_WINDOWFRAME |
Рамка окна |
COLOR_WINDOWTEXT |
Текст в окне |
COLOR_3DDKSHADOW |
Темная тень трехмерных элементов |
COLOR_BTNHILIGHT |
Цвет граней выбранных трехмерных элементов |
COLOR_3DLIGHT |
Цвет граней трехмерных элементов |
COLOR_INFOBK |
Фон панели инструментов |
COLOR_INFOTEXT |
Текст на панели инструментов |
Таблица 1.5. Список значений стилей окон
Имя константы |
Описание стиля |
WS_BORDER |
Окно с рамкой |
WS_CAPTION |
Окно с заголовком (включает стиль WS_BORDER) |
WS_CHILD или WS_CHILDWINDOW |
Дочернее окно |
WS_CLIPCHILDREN |
Родительское окно не перерисовывает те области, которые затенены собственными дочерними окнами |
WS_CLIPSIBLINGS |
Дочернее окно не перерисовывает те области, которые затенены другими дочерними окнами того же родителя |
WS_DISABLED |
Создать заблокированное окно |
WS_DLGFRAME |
Окно с двойной рамкой без заголовка |
WS_GROUP |
Определяет первый элемент группы органов управления, которая состоит из этого элемента и последующих за ним элементов до элемента со стилем WS_GROUP. Первый элемент группы имеет стиль WS_TABSTOP, чтобы пользователь мог перемещаться между группами нажатием клавиш Tab. Внутри группы от элемента к элементу переходят клавишами направления |
WS_HSCROLL |
Окно с горизонтальной полосой просмотра |
WS_ICONIC или WS_MINIMIZE |
Изначально свернутое в пиктограмму окно |
WS_MAXIMIZE |
Окно максимально возможного размера |
WS_MAXIMIZEBOX |
Окно с кнопкой восстановления/максимизации размера. Используют со стилями WS_OVERLAPPED и WS_CAPTION |
WS_MINIMIZEBOX |
Окно с кнопкой сворачивания окна в пиктограмму. Используют со стилями WS_OVERLAPPED и WS_CAPTION |
WS_OVERLAPPED |
Перекрывающееся окно, имеющее заголовок и рамку |
WS_OVERLAPPEDWINDOW |
Окно с комбинацией стилей WS_OVERLAPPED, WS_THICKFRAME, WS_SYSMENU, WS_MINIMIZEBOX и WS_MAXIMIZEBOX |
WS_POPUP |
Временное окно |
WS_POPUPWINDOW |
Комбинация стилей WS_POPUP, WS_BORDER и WS_SYSMENU. Для того чтобы сделать системное меню доступным, нужно добавить стиль WS_CAPTION |
WS_SIZEBOX |
Окно с толстой рамкой для изменения размера окна |
WS_SYSMENU |
Окно с системным меню. Объединяют с WS_CAPTION |
WS_TABSTOP |
Элемент управления, который получает фокус ввода с клавиатуры при нажатии клавиши Tab |
WS_VISIBLE |
Окно становится видимым сразу после создания |
WS_VSCROLL |
Окно с вертикальной полосой просмотра |
MDIS_ALLCHILDSTYLES |
Используется при создании дочерних MDI-окон и определяет окна, которые могут иметь любые комбинации стилей. По умолчанию дочерние MDI-окна имеют стили WS_MINIMIZE, WS_MAXIMIZE, WS_VSCROLL, WS_HSCROLL |
