Сложный способ определения меню

 

 

Определение меню в файле описания ресурсов — это, как правило, простейший способ добавить меню к окну программы, но этот способ — не единственный. Вы можете обойтись без файла описания ресурсов и, с помощью вызовов функций CreateMenu и AppendMenu, создать все меню внутри программы. После


 

 

завершения определения меню, можно передать описатель меню функции Create Window или использовать функцию SetMenu для установки меню окна.

 

 

Теперь о том, как это делается. Возвращаемым значением функции CreateMenu является просто описатель нового меню:

 

 

hMenu = CreateMenu () ;

 

 

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

 

 

hMenu = CreateMenu ( ) ;

 

 

hMenuPopup = CreateMenu ( ) ;

 

 

AppendMenu (hMenuPopup, MF_STRING, IDM_NEH, "&New") ;

 

 

AppendMenu (hMenuPopup, MF_STRING, IDM_OPEN, " & Open...") ;

 

 

AppendMenu (hMenuPopup, MF_STRING, IDM SAVE, "&Save") ;

 

 

AppendMenu (hMenuPopup, MF_STRING, IDM_SAVEAS, "Save &As...") ;

 

 

AppendMenu (hMenuPopup, MF_SEPARATOR, 0, NULL) ;

 

 

AppendMenu (hMenuPopup, MP_STRING, IDM_EXIT, "E&xit") ;

 

 

AppendMenu (hMenu, MF_POPUP, (UINT) hMenuPopup, "&File") ;

 

 

hMenuPopup = CreateMenu () ;

 

 

AppendMenu (hMenuPopup, MF STRING, IDM UNDO, " & Undo") ;

 

 

AppendMenu (hMenuPopup, MF_SEPARATOR, 0, NULL) ;

 

 

AppendMenu (hMenuPopup, MF_STRING, IDM_CUT, "Cu&t") ;

 

 

AppendMenu (hMenuPopup, MF_STRING, IDM_COPY, " & Copy") ;

 

 

AppendMenu (hMenuPopup, MP_STRING, IDM_PASTE, " & Paste") ;

 

 

AppendMenu (hMenuPopup, MF_STRING, IDMJ3EL, "De&lete") ;

 

 

AppendMenu (hMenu, MF_POPUP, (UINT) hMenuPopup, " & Edit") ;

 

 

hMenuPopup' = CreateMenu () ;

 

 

AppendMenu (hMenuPopup, MF_STRING I MF_CHECKED, IDM_WHITE, "&White") ;

 

 

AppendMenu (hMenuPopup, MF_STRING, IDM_LTGRAY, "&Lt Gray") ;

 

 

AppendMenu (hMenuPopup, MF_STRING, IDM_GRAY, "&Gray") ;


– 59 –

 

 

AppendMenu (hMenuPopup, MF_STRING, IDM_DKGRAY, "&Dk Gray") ;

 

 

AppendMenu (hMenuPopup, MF_STRING, IDM_BLACK, "&SBlack") ;

 

 

AppendMenu (hMenu, MF_POPUP, (UINT) hMenuPopup, "{&Background") ;

 

 

hMenuPopup = CreateMenu () ;

 

 

AppendMenu (hMenuPopup, MF STRING, IDM START, "&Start") ;

 

 

AppendMenu (hMenuPopup, MF_STRING I MF_GRAYED, IDM_STOP, "S&top") ;

 

 

AppendMenu (hMenu, MF_POPUP, (UINT) hMenuPopup, "&Timer") ;

 

 

hMenuPopup = CreateMenu () ;

 

 

AppendMenu (hMenuPopup, MF_STRING, IDM_HELP, "&Help...") ;

 

 

AppendMenu (hMenuPopup, MF_STRING, IDM_ABOUT, " &About MenuDemo ...") ;

 

 

AppendMenu (hMenu, MF_POPUP, (UINT) hMenuPopup, "&Help") ;

 

 

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

 

 








Дата добавления: 2016-11-22; просмотров: 574;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.009 сек.