Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Menu ID - Word или Cardinal?

3.7K
02 сентября 2008 года
0nni
326 / / 24.06.2008
В функции создания пункта меню используется 4х байтное число
 
Код:
BOOL AppendMenu(

    HMENU hMenu,    // handle to menu to be changed
    UINT uFlags,    // menu-item flags
    UINT uIDNewItem,    // menu-item identifier or handle of drop-down menu or submenu
    LPCTSTR lpNewItem   // menu-item content
   );


А при вызове WM_COMMAND возвращается 2x байтное
 
Код:
WM_COMMAND  
wNotifyCode = HIWORD(wParam); // notification code
wID = LOWORD(wParam);         // item, control, or accelerator identifier
hwndCtl = (HWND) lParam;      // handle of control


Как мне запихнуть указатель или объект в пункт меню?
12K
02 сентября 2008 года
lifs
163 / / 06.09.2007
Функция:
 
Код:
SetMenuItemInfo(HMENU hMenu, UINT uItem, BOOL fByPosition,LPMENUITEMINFO lpmii)

в структуре MENUITEMINFO поле fMask = MIIM_DATA, а поле dwItemData - данные.
14
02 сентября 2008 года
Phodopus
3.3K / / 19.06.2008
А отвечая на вопрос топика:
Цитата:
Menu ID - Word или Cardinal?


Это смотря какое меню ты создаешь! :)
Если пункт меню - то Word, если подменю - то Cardinal

3.7K
04 сентября 2008 года
0nni
326 / / 24.06.2008
Так, с типами разобрался. А тогда как мне GetMenuItemInfo() вызвать из WM_COMMAND? Ведь хендла меню у меня нет!
И сразу второй вопрос можно ли в WM_COMMAND для меню получать не ID а Position?
12K
04 сентября 2008 года
lifs
163 / / 06.09.2007
Его можно получить так
 
Код:
HMENU GetMenu(HWND)

Для вычисления позиции:
 
Код:
int GetMenuPosFromID(HMENU hmenu, UINT id);
3.7K
04 сентября 2008 года
0nni
326 / / 24.06.2008
О! А я то думал что нужно указывать хендл меню которое возвращает Create[Popup]Menu() - можно родительские меню!
Значит мне остается только следить за уникальностью MenuItemID...
Все ясно, всем спасибо!

3.ъ1.[QUOTE=lifs]
Для вычисления позиции:
Код:
int GetMenuPosFromID(HMENU hmenu, UINT id);
[/QUOTE]
я думал id везде нулями забить и работать чисто с позицией, теперь понял - глупость.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог