- •Лекция 7
- •Меню
- •По способу создания различают статическое и динамическое меню.
- •Элементы меню
- •Значения поля fMask
- •Алгоритм создания меню
- •Функции создания меню
- •Вставка элементов в меню
- •Вставка строк в меню
- •Значения параметра fuFlags
- •Удаление элементов из меню
- •Функция удаления элемента из меню, не разрушая связанные с ним элементы.
- •Управление состоянием
- •Получение информации о меню
- •Сообщения от меню
- •Сообщение WM_MENUSELECT: поступает в процессе курсора меню по строкам меню. Младшее слово wParam
- •Контекстное меню
- •Пример
- •AppendMenu(hmenuFile, MF_SEPARATOR, 0, NULL);
- •case WM_COMMAND:
- •// Выбрали строки "Open" или "New" в меню "File" case CM_FILEOPEN:
- •//Выбрали строку "Close" из меню "File" case CM_FILECLOSE:
- •// Завершаем работу приложения case CM_FILEEXIT:
- •Присвоение значений по умолчанию событиям нажатия пунктов меню. Заголовочный файл “dmenu.hpp”.
- •Более подробно о работе с меню в WinAPI:
- •Строка состояния
- •Сообщения для строки состояния
// Завершаем работу приложения case CM_FILEEXIT:
{
DestroyWindow(hwnd); return 0;
}
default: return 0;
}
}
case WM_DESTROY:
{
//Если было создано меню "Edit", уничтожаем его if(hmenuEdit != NULL)
{
DestroyMenu(hmenuEdit);
}
//Уничтожаем созданные ранее меню DestroyMenu(hmenuFile); DestroyMenu(hmenuHelp); DestroyMenu(hmenu);
PostQuitMessage(0); return 0;
}
default: break;
}
return DefWindowProc(hwnd, msg, wParam, lParam);
}
Присвоение значений по умолчанию событиям нажатия пунктов меню. Заголовочный файл “dmenu.hpp”.
#define CM_HELPABOUT |
24346 |
|
#define CM_HELPUSING_HELP |
24345 |
|
#define CM_HELPPROCEDURES |
24344 |
|
#define CM_HELPCOMMANDS |
|
24343 |
#define CM_HELPKEYBOARD |
|
24342 |
#define CM_HELPINDEX |
24341 |
|
#define CM_EDITPASTE |
24324 |
|
#define CM_EDITCOPY |
24323 |
|
#define CM_EDITCUT |
24322 |
|
#define CM_EDITUNDO |
24321 |
|
#define CM_FILEEXIT |
24338 |
|
#define CM_FILEPRINTER_SETUP |
24337 |
|
#define CM_FILEPAGE_SETUP |
|
24336 |
#define CM_FILEPRINT |
24335 |
|
#define CM_FILESAVEAS |
24334 |
|
#define CM_FILESAVE |
24333 |
|
#define CM_FILEOPEN |
24332 |
|
#define CM_FILENEW |
24331 |
|
#define CM_FILECLOSE |
24330 |
|
#define CM_FILEDEMO |
24329 |
Более подробно о работе с меню в WinAPI:
http://www.frolov-lib.ru/books/bsp/v13/ch1.htm
Строка состояния
Создание строки состояния осуществляется функцией:
HWND CreateStatusWindow(LONG style, LPCTSTR lpszText, HWND hwndParent, UINT wID);
style – стиль окна, должен быть WS_CHILD | WS_VISIBLE.
lpszText – строка, содержащая первоначальный текст строки состояния.
hwndParent – дескриптор родительского окна.
wID – идентификатор строки состояния.
Сообщения для строки состояния
SB_SETPARTS – установить количество секций строки состояния.
wParam – количество секций,
lParam – указатель на массив длин секций.
SB_SETTEXT – установить текст секции строки состояния.
wParam – номер секции,
lParam – указатель на текст.