
- •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. Окна Сообщений. Стили и флаги окон. Использование окон сообщений в режиме модального и немодального окна.
59.Имена ресурсов, использование макроса makeintresource().
MAKEINTRESOURCE (make an integer into a resourсe string — преобразовать целое в строку ресурса) является макросом, определенным в заголовочных файлах Windows, который преобразует число в указатель, но со старшими 16 разрядами, установленными в нуль. Рассмотрим данный макрос на примере иконок.
hIcon = LoadIcon (hInstance, MAKEINTRESOURCE (125));
//это значит, что второй параметр является числом, а не указателем на символьную строку.
LoadIcon(NULL, IDI_APPLICATION);
Поскольку параметр hInstance установлен в NULL, Windows узнает, что этот значок является предопределенным.
IDI_APPLICATION также определяется в заголовочных файлах Windows с использованием макроса MAKEINTRESOURCE:
#define IDI_APPLICATION MAKEINTRESOURCE(32512)
60.Структура главного меню. Описание меню в файле ресурсов.
Меню можно создать тремя разными способами. Наиболее обычным (и самым простым) является определение меню в файле описания ресурсов в форме шаблона меню, например:
MyMenu MENU
{
[список элементов меню]
}
MyMenu — это имя меню. Вы ссылаетесь на это имя в структуре класса окна. Обычно имя меню такое же, как имя приложения.
Внутри квадратных скобок можно использовать либо инструкцию MENUITEM, либо POPUP. Инструкция MENUITEM имеет следующий формат:
MENUITEM "&Text", id [, признаки]
Формат инструкции POPUP:
POPUP "&Text" [, признаки]
{
[список элементов меню]
}
Вместо фигурных скобок можно использовать ключевые слова BEGIN и END. Текст, выводимый для каждого пункта меню должен быть заключен в парные кавычки. Амперсант (&) вызывает подчеркивание следующего за ним символа при выводе на экран. Windows ищет этот же символ, когда пользователь выбирает элемент меню с использованием клавиши <Alt>. Если не включить амперсант в текст, то в тексте меню не будет подчеркнутых символов, и Windows будет использовать первую букву текста при поиске.
При определении всплывающего меню допускаются следующие инструкции:
MENUITEM "text", id [, признаки]
а также:
MENUITEM SEPARATOR
а также:
POPUP "text" [, признаки]
MENUITEM SEPARATOR рисует во всплывающем меню горизонтальную черту. Эта черта часто используется для разделения групп, связанных по смыслу и назначению опций.
61. Сообщение от меню. Идентификаторы действия меню. Индексы элементов Popup menu
// Ответ не был найден лишь частично, остальное писалось от себя
При взаимодействии с меню, Windows посылает главному окну сообщение WM_COMMAND с идентификатором действия, такие сообщения посылаются только для
разрешенных пунктов меню.
-----------------------------------------------------------------------------------------------------------
Все идентификаторы пунктов меню определяются в заголовочном файле. Этот файл должен быть включен (с помощью инструкции #include) в файл описания ресурсов и в файл с исходным текстом программы. Идентификаторы начинаются с букв IDM. Значения идентификаторов не обязательно должны быть последовательными.
В файле ресурсов идентификаторы записываются после имени действия, например:
MENUITEM "&New", IDM_NEW
IDM_NEW – и есть тот самый идентификатор пункта меню по именем «New»
-----------------------------------------------------------------------------------------------------------
Индексы каждого нового элемента POPUP начинаются с нуля. Допустим, есть такое меню:
«Файл» | «Вид» | «Помощь»
В пункте «Файл» есть такие подпункты: «открыть», «сохранить», «выход»
Так вот, пункт «Файл» будет иметь индекс «0», «Вид» – «1», и так далее.
Подпункты в меню «Файл» так же будут иметь индексы, начинающиеся с нуля:
«открыть» – индекс «0», «сохранить» – индекс «1», «выход» – индекс «2» и т.д.