100分:我做了一个按钮菜单(menu button),如何使它SetCheck()等?

LEO_LXB 2003-05-12 07:25:40
我已经响应了UPDATE_COMMAND_UI,而且调试能够进入该函数,可SetCheck()就是不起作用,不知是什么原因!

如果把该菜单加入Dialog 属性中的系统菜单,是起作用的。可我又不想让它是系统菜单!(因为如果是系统菜单的话,我做几个按钮菜单怎么办呢,只能有一个系统菜单啊?)

怎么办呢?

...全文
99 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
LEO_LXB 2003-05-13
  • 打赏
  • 举报
回复
问题已经解决,谢谢大家!

goodboyyxh 2003-05-12
  • 打赏
  • 举报
回复
把你的代码给我look look!
LEO_LXB 2003-05-12
  • 打赏
  • 举报
回复
to goodboyyxh:
是啊!

to KcSoft(蓝珍珠精灵) :
没反应!发个例子给我,好吗?LEO_LXB@HOTMAIL.COM
KcSoft 2003-05-12
  • 打赏
  • 举报
回复
void CXXXXApp::OnUpdateYourID(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(TRUE);
}

POINT pt;
GetCursorPos(&pt);
CWnd* pWnd=AfxGetMainWnd();
CMenu cMenu;
cMenu.CreatePopupMenu();
cMenu.AppendMenu(MF_STRING,ID_YOURID, "YourID(&Z) Ctrl+Z");
cMenu.AppendMenu(MF_SEPARATOR);
cMenu.AppendMenu(MF_STRING,ID_APP_EXIT, "退出(&X) Ctrl+X");
SetForegroundWindow();
cMenu.TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,
pt.x, pt.y, pWnd);
cMenu.DestroyMenu();
goodboyyxh 2003-05-12
  • 打赏
  • 举报
回复
你加在相应的菜单项的消息响应函数里,就是点击了这个菜单后,它的活干好让它把自己的状态给更新掉。对不?
LEO_LXB 2003-05-12
  • 打赏
  • 举报
回复
在UPDATE_COMMAND_UI的响应函数中
pCmdUI->m_pMenu->CheckMenuItem(ID_MENU1,MF_CHECKED);

可是还是没反应啊!

急!
goodboyyxh 2003-05-12
  • 打赏
  • 举报
回复
那就这样啊:
CMenu *menuTemp;
menuTemp=new CMenu;
menuTemp->LoadMenu(IDR_YOURMENU);
/*
。。。。
*/
delete menuTemp;
得到的就是你的菜单的指针,然后就去发挥吧。

LEO_LXB 2003-05-12
  • 打赏
  • 举报
回复
to goodboyyxh()

pTopMenu=GetMenu(); //得到的是系统菜单啊,我就是不想用系统菜单的!
goodboyyxh 2003-05-12
  • 打赏
  • 举报
回复
这个是我自己的代码,你要从里面分析出来自己用。只要把这个代码加到你更新菜单状态的函数里就行了。
LEO_LXB 2003-05-12
  • 打赏
  • 举报
回复
to goodboyyxh()

这段程序要加在在UPDATE_COMMAND_UI的消息响应函数里吗?

你有相关的例子吗?
BinaryPoet 2003-05-12
  • 打赏
  • 举报
回复
CheckMenuItem
goodboyyxh 2003-05-12
  • 打赏
  • 举报
回复
我碰到过这个问题,我有一个办法:(要自己调用CheckMenuItem函数)
CMenu *pAddinMenu,*pTopMenu;
pTopMenu=GetMenu();
ASSERT(pTopMenu!=NULL);
pAddinMenu=pTopMenu->GetSubMenu(0);
ASSERT(pAddinMenu!=NULL);
pAddinMenu->CheckMenuItem(0,MF_BYPOSITION |
(ComConfig.bNihe? MF_CHECKED : MF_UNCHECKED));
chenweihello 2003-05-12
  • 打赏
  • 举报
回复
在UPDATE_COMMAND_UI的消息响应函数里,
pCmdUI->SetCheck(勾选的条件);
iamshuke 2003-05-12
  • 打赏
  • 举报
回复
CMenu::ModifyMenu(ID,MF_BYCOMMAND|MF_CHECKED,ID,"");
LEO_LXB 2003-05-12
  • 打赏
  • 举报
回复
我就是SetCheck()响应不了啊!
jruv 2003-05-12
  • 打赏
  • 举报
回复
是你自己做的按钮菜单,还问人家怎么check啊!

16,472

社区成员

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

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

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