- •43. Работа с таймером. Функции создания и удаления таймеров. Синхронные сообщения таймера.
- •Void callback TimerProc(hwnd hwnd, _uint iMsg, _uint iTimerId, dword dwTime)
- •Void winapi GetLocalTime(
- •44. Обработка сообщений от таймера в оконной процедуре приложения. Организация процедуры обратного вызова для обработки сообщений от таймера.
- •45. Кнопки pushbutton defpushbutton и их назначение. Создание кнопок в окне приложения, сообщения от кнопок.
- •46. Кнопки флажки checkbox, autocheckbox, 3state, auto3state их назначение. Создание кнопок в окне приложения, сообщения от кнопок. Управление кнопками со стороны приложения.
- •47. Кнопки-переключатели radiobutton, autoradiobutton их назначение. Создание кнопок в окне приложения, сообщения от кнопок. Управление кнопками со стороны приложения.
- •48,Б. Функции, которые определяют связи между идентификатором дочернего окна, хэнделом дочернего окна и хэнделом родительского окна.
- •48. Работа с кнопками в окне приложений. Управление фокусом кнопок.
- •48,А. Функции для изменения состояния дочерних окон на примере кнопок.
- •48,В. Функции для изменения текста в дочерних окнах на примере кнопок.
- •49. Статические дочерние окна. Их назначение и создание в окне приложения. Стили статических окон.
- •50. Использование статических окон как устройств вівода текста или картинок.
- •51. Введение новой оконной процедуры для управления фокусом дочерних окон управления и изменения функций дочерних окон.
- •52. Класс редактирования(edit). Основные стили класса, назначение и использование окон редактирования.
- •53. Создание окон редактирования в окне приложения. Основные функции окна редактирования. Сообщения окна родительскому окну и сообщения посылаемые окну редактирования.
- •54. Класс окна списка(list-box). Основные стили класса, назначение и использование окна списка диалога.
- •55.Сообщения окна списка(listbox) и сообщения, посылаемые окну списка.
- •55А.Сообщения lb_dir ,атрибуты для выбора файлов, каталогов и логических дисков.
- •56.Файл ресурсов. Описание и назначение. Компилятор ресурсов. Использование файла ресурсов в проекте приложения.
- •57.Описание в файле ресурсов иконок, курсоров и битовых образов. Имена ресурсов и стандартные типы ресурсов. Функции доступа к ресурсам.
- •58.Ресурсы-символьные строки, их назначения и описание в файле ресурсов. Функции доступа к ресурсам-строкам.
- •59.Имена ресурсов, использование макроса makeintresource().
- •60.Структура главного меню. Описание меню в файле ресурсов.
- •61. Сообщение от меню. Идентификаторы действия меню. Индексы элементов Popup menu
- •61,А. Использование символа ‘&’ в описаниях пунктов меню
- •61,Б. Действия, которые приводят к получению и потере фокуса для меню
- •61,В. Основные признаки пунктов меню, порядок изменения состояния пунктов меню
- •61,Г. Способы подключения меню в программу
- •61,Д. Основные сообщения меню, их структура и назначение.
- •61,Е. Отличия сообщения wm_command для меню и кнопок.
- •61,Ж. Отличия сообщения wm_command от сообщения wm_syscommand
- •62. Всплывающее меню. Отличия в описании всплывающего меню от описания главного меню в файле ресурсов
- •62,А Порядок обращению к всплывающему меню
- •63. Системное меню. Особенности, описание и использование системного меню
- •63,Б. Использование системного меню для построения меню пользователя
- •64. Клавиши акселератора. Назначение и описание в файле ресурсов. Обработка сообщений от клавиш акселератора в цикле обработки сообщений.
- •64,А. Отличия сообщения wm_command для меню и акселераторов
- •64,Б. Зачем нужны акселераторы, если имеются различные виды сообщений от клавиатуры?
- •64,В. Дополнения в цикле чтения сообщений при использовании акселераторов.
- •64,Г. Порядок загрузки акселераторов в приложение.
- •65. Окна диалога и их назначение. Модальные и немодальные окна. Описание окон диалога в файле ресурсов.
- •Icon „About1“
- •66. Создание модального окна диалога. Диалоговая процедура, её назначение, и применение.
- •67. Немодальное окно диалога. Функция создания окна. Обработка сообщений от немодальных окон диалога. Цикл обработки сообщений при наличии немодальных окон диалога.
- •68. Описание дочерних окон управления в окнах диалога. Инструкции сокращенного и общего описания дочерних окон управления (в составе окна диалога) в файле ресурсов.
- •69. Основные правила интерфейса клавиатуры для дочерних окон управления, описанных в диалоговом окне.
- •70. Окна Сообщений. Стили и флаги окон. Использование окон сообщений в режиме модального и немодального окна.
61,А. Использование символа ‘&’ в описаниях пунктов меню
Амперсант (&) вызывает подчеркивание следующего за ним символа при выводе элементов меню на экран. Windows ищет этот же символ, когда пользователь выбирает элемент меню с использованием клавиши <Alt>. Если не включить амперсант в текст, то в тексте меню не будет подчеркнутых символов, и Windows будет использовать первую букву текста при поиске.
61,Б. Действия, которые приводят к получению и потере фокуса для меню
//Ответ так же не был найден. Написано от себя
Меню может получить/потерять фокус при взаимодействии с ним по средствам мыши или клавиатуры. Инициация получения фокуса происходит при нажатии левой кнопкой мыши на главное меню или же при нажатии клавиши <Alt>. Пункты меню получают фокус, когда курсор находится непосредственно над пунктом меню или же при выделении пункта меню про средствам «стрелочек» на клавиатуре. Элемент меню, имеющий фокус, по особому выделяется (подсвечивается).
61,В. Основные признаки пунктов меню, порядок изменения состояния пунктов меню
Признаками в инструкциях MENUITEM, относящихся к всплывающим меню, являются следующие:
CHECKED — Слева от текста появляется метка ("галочка").
GRAYED — Данный пункт меню недоступен и не генерирует сообщений WM_COMMAND. Текст изображается недоступным(серым цветом).
INACTIVE — Данный пункт меню неактивен и не генерирует сообщений WM_COMMAND. Текст изображается обычным образом.
MENUBREAK — Данный пункт меню, а также все последующие появляются на экране в новом столбце.
MENUBARBREAK — Данный пункт меню, а также все последующие появляются на экране в новом столбце. Столбцы разделяются между собой вертикальной чертой.
Опции GRAYED и INACTIVE нельзя использовать вместе. Опции MENUBREAK и MENUBARBREAK нельзя использовать вместе.
Для изменения состояния пункта меню необходимо сначала получить описатель (хэндл) на меню: hMenu = GetMenu(hwnd); После чего состояние пункта меню можно изменить с помощью функций CheckMenuItem или EnableMenuItem, так же может понадобиться функция GetSubMenu, для доступа к подпунктам меню.
61,Г. Способы подключения меню в программу
В определении меню класса
wndclass.lpszMenuName = "MyMenu"; или
wndclass.lpszMenuName = MAKEINTRESOURCE(45); или
wndclass.lpszMenuName = "#45";
Девятый параметр функции CreateWindow
hMenu = LoadMenu(hInstance, "MyMenu");
и затем указать хэндл hMenu в 9ом параметре функции CreateWindow.
Присоединение меню к окну с помощью функции SetMenu
hMenu = LoadMenu(hInstance, "MyMenu");
SetMenu(hwnd, hMenu);
61,Д. Основные сообщения меню, их структура и назначение.
Когда пользователь выбирает пункт меню, Windows посылает оконной процедуре несколько различных сообщений. Одним из таких сообщений является сообщение WM_INITMENU, которое имеет следующие параметры:
wParam |
lParam |
Описатель главного меню |
0 |
Это сообщение существует для того, чтобы дать вам возможность изменить меню перед тем, как будет выбран пункт меню.
-----------------------------------------------------------------------------------------------------------
Если пользователь перемещает курсор мыши по пунктам меню, программа может получить множество сообщений WM_MENUSELECT. Данное сообщение имеет следующие параметры:
LOWORD(wParam) |
HIWORD(wParam) |
lParam |
Выбранный пункт: идентификатор меню или описатель сплывающего меню |
Флаги выбора |
Описатель меню, содержащего выбранный пункт
|
Сообщение WM_MENUSELECT — это сообщение для отслеживания перемещения по меню. Младшее слово параметра wParam говорит о том, какой пункт меню выбран (подсвечен) в данный момент. В старшем слове параметра wParam могут быть комбинации из следующих флагов выбора: MF_GRAYED, MF_DISABLED, MF_CHECKED, MF_BITMAP, MF_POPUP, MF_HELP, MF_SYSMENU иMF_MOUSESELECT. Сообщение WM_MENUSELECT может понадобиться для того, чтобы изменить что-нибудь в рабочей области окна на основе информации о перемещении подсветки по пунктам меню.
-----------------------------------------------------------------------------------------------------------
Когда Windows готова вывести на экран всплывающее меню, она посылает оконной процедуре сообщение WM_INITMENUPOPUP со следующими параметрами:
wParam |
LOWORD(lParam) |
HIWORD(lParam) |
Описатель всплывающего меню |
Индекс всплывающего меню |
Для системного меню «1», в ином случае «0» |
Это сообщение важно, если необходимо разрешать или запрещать пункты меню перед их выводом на экран.
-----------------------------------------------------------------------------------------------------------
Самым важным сообщением меню является WM_COMMAND. Это сообщение показывает, что пользователь выбрал разрешенный пункт меню окна. Параметры сообщения таковы:
LOWORD(wParam) |
HIWORD(wParam) |
lParam |
Идентификатор меню |
0 |
0 |
