Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.144.33.41] |
|
Сообщ.
#1
,
|
|
|
Здрасте
Короче тема такая пытаюсь менять состояние команд меню в диалоговом приложении. Дело в том что в нем стандартный механизм ON_UPDETE_COMMAND_UI не работает. Погуглил и выяснил что надо обрабатывать WN_KICKIDLE, но как выяснил это работает только с контролами диалога, но не меню. Пробывал через EnableMenuItem, сработало но сразу не обновляется, надо мышей поводить над меню тогда обновится. Пытался обновить через InvalidateRect но тщетно, что делать? void CExamle105Dlg::OnFileItem() { GetMenu()->EnableMenuItem(IDM_EDIT, MF_BYCOMMAND | MF_DISABLED); //<--- так работает но не обновляется сразу } |
Сообщ.
#2
,
|
|
|
Цитата Cfon @ Пробывал через EnableMenuItem, сработало но сразу не обновляется, надо мышей поводить над меню тогда обновится. Пытался обновить через InvalidateRect но тщетно, что делать? А IDM_EDIT это элемент выпадающего меню, или основного (строки меню)? Если основного, то после EnableMenuItem нужен вызов DrawMenuBar для перерисовки строки меню (см.ремарки к EnableMenuItem) |
Сообщ.
#3
,
|
|
|
Цитата leo @ Если основного, то после EnableMenuItem нужен вызов DrawMenuBar для перерисовки строки меню (см.ремарки к EnableMenuItem) спс точно надо! |