MFC关于对话框程序的菜单

愤怒的熊猫007 2010-04-27 04:27:08
我在基于对话框的MFC中添加了一个菜单 ,希望对菜单中的声音选项有个检查标记,即如果选择了声音就有个对钩,没有选择就没有对钩。看了一个基于单文档的添加方法 但是转化到基于对话框的程序中却不行,望高手指教了!~希望可以说的 完整些1~
...全文
104 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ywwj5858792qd 2010-04-28
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 visualeleven 的回复:]
引用 8 楼 zhouming1318 的回复:
引用 6 楼 visualeleven 的回复:
你处理WM_INITMENUPOPUP消息???

我确定啊!~……

VC6下试过,没有问题啊。。。
[/Quote]
up
Eleven 2010-04-27
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zhouming1318 的回复:]
引用 6 楼 visualeleven 的回复:
你处理WM_INITMENUPOPUP消息???

我确定啊!~……
[/Quote]
VC6下试过,没有问题啊。。。
愤怒的熊猫007 2010-04-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 visualeleven 的回复:]
你处理WM_INITMENUPOPUP消息???
[/Quote]
我确定啊!~……
qjybch 2010-04-27
  • 打赏
  • 举报
回复
http://support.microsoft.com/default.aspx?scid=kb;en-us;242577
我来贴了,这个应该能够解决哦!
http://topic.csdn.net/t/20041208/22/3628115.html
Eleven 2010-04-27
  • 打赏
  • 举报
回复
你处理WM_INITMENUPOPUP消息???
Eleven 2010-04-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhouming1318 的回复:]
引用 3 楼 visualeleven 的回复:
对于模态非模态对话框默认是不响应菜单的UPDATE_COMMAND_UI消息的,需要增加对WM_INITMENUPOPUP消息的处理以后,才可以响应UPDATE_COMMAND_UI。

C/C++ code

void CXXXDlg::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BO……
[/Quote]
你确定????
愤怒的熊猫007 2010-04-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 visualeleven 的回复:]
对于模态非模态对话框默认是不响应菜单的UPDATE_COMMAND_UI消息的,需要增加对WM_INITMENUPOPUP消息的处理以后,才可以响应UPDATE_COMMAND_UI。

C/C++ code

void CXXXDlg::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu)

{

CDia……
[/Quote]
找你说的这么 做了怎么还是 不行啊!~……
Eleven 2010-04-27
  • 打赏
  • 举报
回复
对于模态非模态对话框默认是不响应菜单的UPDATE_COMMAND_UI消息的,需要增加对WM_INITMENUPOPUP消息的处理以后,才可以响应UPDATE_COMMAND_UI。

void CXXXDlg::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu)

{

CDialog::OnInitMenuPopup(pPopupMenu, nIndex, bSysMenu);

// TODO: Add your message handler code here


if(!bSysMenu && pPopupMenu)
{
CCmdUI cmdUI;
cmdUI.m_pOther = NULL;
cmdUI.m_pMenu = pPopupMenu;
cmdUI.m_pSubMenu = NULL;

UINT count = pPopupMenu->GetMenuItemCount();
cmdUI.m_nIndexMax = count;
for(UINT i=0; i<count; i++)
{
UINT nID = pPopupMenu->GetMenuItemID(i);
if(-1 == nID || 0 == nID)
{
continue;
}
cmdUI.m_nID = nID;
cmdUI.m_nIndex = i;
cmdUI.DoUpdate(this, FALSE);
}
}
}
qjybch 2010-04-27
  • 打赏
  • 举报
回复
恩,我也遇到同样问题了,得问问高手了。
wilson_hz 2010-04-27
  • 打赏
  • 举报
回复
孙鑫的视频教程中有关于菜单操作部分。看看就明白了

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧