Создание описания меню, нужно указать имя меню в структуре класса окна; тогда указанное вами меню будет загружаться, отображаться и обслуживаться Windows автоматически:
W. lpszMenuName = "menu";
Другой («динамический») способ работы с меню в приложении заключается в том, что вы загружаете меню в память, вызывая функцию LoadMenu:
W.lpszMenuName = LoadMenu (hInstance, "menu");
Функция LoadMenu() возвращает дескриптор меню, который используется при всех обращениях к меню стандартными функциями Windows – в частности, указывается девятым параметром вызова функции CreateWindow():
hWnd = CreateWindow (
szName, // класс окна
" Application", // имя окна
WS_OVERLAPPEDWINDOW, // тип окна
CW_USERDEFAULT, // координата x
CW_USERDEFAULT, // координата y
CW_USERDEFAULT, // ширина
CW_USERDEFAULT, // высота
NULL, // дескриптор родительского окна
LoadMenu (hInstance, "menu"); // дескриптор метю
hInstance, // дескриптор копии
// приложения
NULL); // дополнительная
// информация
Таким образом, с окнами одного класса вы можете использовать различные меню. Можно также не указывать меню в структуре класса окна и при создании окна, а добавлять меню после его отображения, используя функцию SetMenu(). Это позволяет динамически изменить меню в процессе работы приложения:
SetMenu (hWnd, hMenu);