急死人了50分!!如何在给对话框菜单中的选项打上选定小勾(checked)?? 在属性栏中选择“Checked”,去掉这个标志使用WM_KICKIDLE 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我也试过了,仍然没有效果呀!WM_KICKIDLE 是个什么消息?我在msdn查不到。 是不是参数设置的问题?pMenu->CheckMenuItem(menuitemID,MF_BYCOMMAND|MF_CHECKED); 补充:CMenu *pMenu=new CMenu();pMenu->LoadMenu (MENUSRCID); 在属性里选择“CHECKED”,实现CHECK(打勾、打点),还要添加UPDATE_COMMAND的实现,使用一个标志变量如:BOOL m_bFlag.在构造函数里初始化:m_bFlag = FALSE;在UPDATE_COMMAND_UI的实现里加入:pCmdUI->Enable(TRUE);pCmdUI->SetCheck(m_bFlag);在UPDATE_COMMAND的实现里加入:m_bFlag = !m_bFlag;OK!可以给分了吧:) 非常谢谢大家。你们这些方法我都试过了,仍然没有效果....能否将简单的完整代码贴一下呢?或者发到 [email protected]再次感谢您们!! 在基于对话框的程序里,在UPDATE_COMMAND_UI的实现里,最好不要使用pCmdUI参数,他在文档——视结构中很好使,但在基于对话框的程序里不好使,要实现你的操作,可以这么做:1。在资源管理其中编辑你的Menu,假设ID=ID_MENU1,这个Menu有一个Pop-up Menu named "Test",其下有一个子Menu named "Test_Check",ID=ID_TEST_CHECK。好了,Menu画完了。2。在C***Dlg类中加一个CMenu类的变量,named my_menu1。3。在C***Dlg::OnInitDialog()函数中加入这几行:CCccDlg::OnInitDialog(){.......my_menu1.LoadMenu(IDR_MENU1);//装载MenuSetMenu(&my_menu1);//显示Menu.......}4。响应菜单项Test_Check的UPDATE_COMMAND_UI消息void CCccDlg::OnUpdateTestCheck(CCmdUI* pCmdUI) { // TODO: Add your command update UI handler code here my_menu1.CheckMenuItem(ID_TEST_CHECK,MF_CHECKED);//MF_CHECKED为打上钩 //MF_UNCHECKED为取消钩 }好了,会了吧,还有一点要注意:很重要的哦!!!对于文档——视结构,当你的Menu被拉下的时候,UPDATE_COMMAND_UI消息被触发,当你选种某个子Menu时,这个Menu的COMMAND消息被触发,所以UPDATE_COMMAND_UI一般在COMMAND之前被触发。对于基于对话框的程序里的菜单结构,当你的Menu被拉下的时候,UPDATE_COMMAND_UI消息不被触发,当你选种某个子Menu时,这个Menu的COMMAND消息被触发,然后,UPDATE_COMMAND_UI消息被触发,所以UPDATE_COMMAND_UI一般在COMMAND之后被触发。 问题解决了感谢jerry_mouse(),感谢大家! 关于计算机专业毕业设计 CListCtrl的EDIT BOX怎么改字体颜色啊,折腾了我半天,准备放弃了 关于开发CAD系统的一些疑问,高手请进!! 窗口重绘问题------请各位高手们指点 求救:怎样用VC程序生成一个XML文件? 怎样从一个视图类取得另一视图类的指针(两个视图类调用不同文档类) 关于Edit控件的问题。 关于能显示树的组合框的问题 在MFC对话框中动态装入ATL复合控件,为什么一点击控件上的按钮程序就死掉? 哪位在VC++中用过BarodeX来生成条码? CoInitializeEx 那里有支持设定数据源的安装软件?难道一定的自己写安装程序??
pMenu->CheckMenuItem(menuitemID,MF_BYCOMMAND|MF_CHECKED);
CMenu *pMenu=new CMenu();
pMenu->LoadMenu (MENUSRCID);
在构造函数里初始化:
m_bFlag = FALSE;
在UPDATE_COMMAND_UI的实现里加入:
pCmdUI->Enable(TRUE);
pCmdUI->SetCheck(m_bFlag);
在UPDATE_COMMAND的实现里加入:
m_bFlag = !m_bFlag;
OK!
可以给分了吧:)
你们这些方法我都试过了,仍然没有效果....能否将简单的完整代码贴一下呢?
或者发到 [email protected]
再次感谢您们!!
1。在资源管理其中编辑你的Menu,假设ID=ID_MENU1,这个Menu有一个Pop-up Menu named "Test",其下有一个子Menu named "Test_Check",ID=ID_TEST_CHECK。好了,Menu画完了。
2。在C***Dlg类中加一个CMenu类的变量,named my_menu1。
3。在C***Dlg::OnInitDialog()函数中加入这几行:
CCccDlg::OnInitDialog(){
.......
my_menu1.LoadMenu(IDR_MENU1);//装载Menu
SetMenu(&my_menu1);//显示Menu.......
}
4。响应菜单项Test_Check的UPDATE_COMMAND_UI消息
void CCccDlg::OnUpdateTestCheck(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
my_menu1.CheckMenuItem(ID_TEST_CHECK,MF_CHECKED);//MF_CHECKED为打上钩
//MF_UNCHECKED为取消钩
}好了,会了吧,还有一点要注意:很重要的哦!!!
对于文档——视结构,当你的Menu被拉下的时候,UPDATE_COMMAND_UI消息被触发,当你选种某个子Menu时,这个Menu的COMMAND消息被触发,所以UPDATE_COMMAND_UI一般在COMMAND之前被触发。
对于基于对话框的程序里的菜单结构,当你的Menu被拉下的时候,UPDATE_COMMAND_UI消息不被触发,当你选种某个子Menu时,这个Menu的COMMAND消息被触发,然后,UPDATE_COMMAND_UI消息被触发,所以UPDATE_COMMAND_UI一般在COMMAND之后被触发。
感谢jerry_mouse(),感谢大家!