Здравствуйте, gugle, Вы писали:
[]
G>
G>...
G> // TODO: Add your command handler code here
G> //HMENU hMenu = ::GetMenu(m_hWnd) // ::1
G> HMENU hMenu = ::LoadMenu(theApp.m_hInstance, MAKEINTRESOURCE(IDR_MENU1)); //здесь не ноль
G> HMENU hPopup = ::GetSubMenu(hMenu, 0); //здесь тоже не ноль
G> UINT uCheck = ::GetMenuState(hPopup, ID_MMENU_MM1, 0); //всегда=0
G> if( uCheck & MF_CHECKED )
G> ::CheckMenuItem( hPopup, ID_MMENU_MM1, MF_UNCHECKED );
G> else
G> ::CheckMenuItem( hPopup, ID_MMENU_MM1, MF_CHECKED );
G>...
G>
G>Причем, если запихнуть Popup Menu в главное, и убрать комментарий с ::1 да поставить коммент. на строку ниже, то все ОК!
Хм, а чего же ты хотел то?
LoadMenu на то дана, чтобы загрузить "новое" меню, т.е. HMENU который она тебе вернула, никоим образом не относиться к тому меню,
которое уже есть у окна (GetMenu) и соответ. "//всегда=0".
Думается тебе поможет
EnumThreadWindows + GetMenu
Добрового времени суток.
У меня следующая проблемма.
хочу просто при каком либа событии устанавливать/снимать в меню для трея галочку.
Дык, только вот не хочет:
...
// TODO: Add your command handler code here
//HMENU hMenu = ::GetMenu(m_hWnd) // ::1
HMENU hMenu = ::LoadMenu(theApp.m_hInstance, MAKEINTRESOURCE(IDR_MENU1)); //здесь не ноль
HMENU hPopup = ::GetSubMenu(hMenu, 0); //здесь тоже не ноль
UINT uCheck = ::GetMenuState(hPopup, ID_MMENU_MM1, 0); //всегда=0
if( uCheck & MF_CHECKED )
::CheckMenuItem( hPopup, ID_MMENU_MM1, MF_UNCHECKED );
else
::CheckMenuItem( hPopup, ID_MMENU_MM1, MF_CHECKED );
...
Причем, если запихнуть Popup Menu в главное, и убрать комментарий с ::1 да поставить коммент. на строку ниже, то все ОК!
Здравствуйте, Patalog, Вы писали:
P>Здравствуйте, gugle, Вы писали:
G> []
P>Хм, а чего же ты хотел то?
P>LoadMenu на то дана, чтобы загрузить "новое" меню, т.е. HMENU который она тебе вернула, никоим образом не относиться к тому меню,
P>которое уже есть у окна (GetMenu) и соответ. "//всегда=0".
P>Думается тебе поможет EnumThreadWindows + GetMenu
Спасибо!