Упражнения

1. После нажатия на левую (правую) клавишу мыши над рабочей областью окна в левом верхнем (правом нижнем) углу области отобразить временное окно размером в четверть области. Временное окно скрыть после отжатия клавиши в любом месте экрана.

2. В левом верхнем (в правом нижнем) углу рабочей области окна создать временное (дочернее) окно. После нажатия левой клавиши мыши 4 раза "мигает" временное окно, а после нажатия правой – 3 раза "мигает" дочернее окно. При этом окна выдают различные звуковые сигналы.

3. Создать окно приложения размером в одну шестнадцатую площади экрана с заголовком "Форматирование диска" без кнопок изменения размеров, закрытия и сворачивания в пиктограмму и без кнопки системного меню. При перемещении курсора мыши над рабочей областью окно должно "убегать" от курсора мыши в случайном образом выбранном направлении, оставаясь в пределах экрана.

4. В левом верхнем углу рабочей области окна создать временное окно площадью в одну шестнадцатую площади этой области. При нажатии на левую (правую) клавишу мыши временное окно переместить в соседний по ходу (против хода) часовой стрелки угол рабочей области.

5. При запуске i-ro экземпляра (i>2) приложения спросить пользователя, нужно ли его запустить. Если пользователь ответит "Да", то запустить его. Иначе на передний план переместить 2-й экземпляр приложения и завершить работу i-ro экземпляра.

6. Углы рабочей области окна приложения полностью занимают 4 временных окна одного класса. Если нажать левую клавишу мыши над временным окном, то это окно выдает сообщение о своем заголовке.

7. Окно приложения без заголовка занимает весь экран фоном рабочего стола.

8. В центре рабочей области окна располагается невидимое окно без заголовка размером в четверть площади рабочей области. После нажатия левой клавиши мыши над рабочей областью любого из окон окно без заголовка должно стать видимым, а после нажатия правой – невидимым.

9. В центре рабочей области окна отображено дочернее окно с фоном цвета трехмерных элементов с вертикальной и горизонтальной полосами просмотра размером в четверть этой области. Дочернее окно перемещается в тот угол рабочей области, где нажали левую клавишу мыши.

10. В центре рабочей области окна расположено окно без заголовка с вертикальной и горизонтальной полосами просмотра размером в четверть рабочей области. При нажатии разных клавиш мыши временное окно выдает разный звуковой сигнал.

11. Создать окно размером в четверть площади экрана. После двойного щелчка мыши окно перемещается так, что его центр совпадает с координатами курсора мыши в момент щелчка.

12. Дочернее окно размером 100*100 пикселей при перемещении курсора мыши над ним "убегает" от курсора мыши в произвольном направлении, оставаясь в пределах рабочей области родительского окна.

13. При запуске второго экземпляра приложения сообщить о запрете запуска нескольких экземпляров, на передний план переместить первый экземпляр приложения, 3 раза изменить подсветку его окна, выдавая звуковое предупреждение, и завершить работу второго экземпляра.

14. В рабочей области окна приложения рядом друг с другом расположить 3 временных окна, каждое из которых по-своему реагирует на нажатие левой клавиши мыши.

15. Окно первого экземпляра приложения расположить в левом верхнем, второго – в правом верхнем, третьего – в левом нижнем, четвертого- в правом нижнем углу экрана. Причем все окна равных размеров и вместе занимают весь экран. В заголовке окна указать номер экземпляра. Запретить запуск пятого экземпляра.

16. Центр рабочей области окна занимает временное окно размером в четверть площади области в свернутом состоянии. После нажатия левой клавиши мыши над рабочей областью временное окно распахивается в центре области, а после нажатия правой – сворачивается в центре.

17. Центр рабочей области окна занимает временное окно размером в четверть площади области. Оно перемещается в тот угол рабочей области, где щелкнули левой клавишей мыши. А после щелчка правой клавишей мыши временное окно перемещается в угол, противоположный текущему углу.

18. Окно приложения занимает четверть экрана и расположено в левом верхнем углу. Создать временное окно такого же размера в правом нижнем углу экрана. Любое окно после нажатия левой клавиши мыши перемещается в свободный по ходу часовой стрелки угол.

19. Окно размером в четверть площади экрана расположено в центре экрана. После нажатия левой клавиши мыши окно несколько раз меняет подсветку и перемещается в угол экрана так, что курсор мыши оказывается за пределами окна.

20. При запуске не первого экземпляра приложения выдать предупреждающий звуковой сигнал и сообщить о количестве уже работающих копий этого приложения. Запустить экземпляр, только если согласен пользователь.

21. В рабочей области окна приложения рядом друг с другом расположить 4 временных окна, в заголовках которых указан номер окна. После нажатия левой клавиши мыши временное окно выдает сообщение, содержащее номер окна.

22. Правый верхний угол рабочей области окна приложения занимает временное окно размером в четверть этой области. После нажатия правой клавиши мыши над рабочей областью окна приложения временное окно сворачивается в пиктограмму в левом нижнем углу, а после нажатия левой – распахивается в правом верхнем углу рабочей области.

23. В углах рабочей области окна приложения созданы невидимые временные окна с заголовком. Каждое окно становится видимым после нажатия левой клавиши мыши над его частью рабочей области и становится невидимым после нажатия левой клавиши мыши над его рабочей областью.

24. Окно приложения размером в четверть площади экрана занимает один из углов экрана. После нажатия левой клавиши мыши окно сворачивается в пиктограмму. После щелчка по пиктограмме оно восстанавливается в другом углу экрана.

25. При запуске приложения показать окна уже существующих копий этого приложения и спросить пользователя, нужно ли запустить еще один экземпляр. Если пользователь ответит "Да", то запустить его. Иначе завершить работу приложения

Приложение 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

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: