我创建了一个基于Dialog的程序,同时也加了菜单,
程序要执行一些很费时间的工作,为了防止用户误操作,
用 update_command_ui 禁止和恢复菜单,但有一个小问题,
禁止菜单后,菜单的并不变灰!不知道怎么回事!
void CHorsemanDlg::OnUpdateNewSniff(CCmdUI* pCmdUI)
{
if(m_bWorking)
{
pCmdUI->Enable(0);
}else
{
pCmdUI->Enable(0);
}
}再就是,工作执行完之后,自然要恢复菜单,用户可以进行其他的
操作, 我的想法是调用 OnUpdateNewSniff()函数,不过这个函数
要传入 pCmdUI参数,比较麻烦,大家有什么好的办法?
程序要执行一些很费时间的工作,为了防止用户误操作,
用 update_command_ui 禁止和恢复菜单,但有一个小问题,
禁止菜单后,菜单的并不变灰!不知道怎么回事!
void CHorsemanDlg::OnUpdateNewSniff(CCmdUI* pCmdUI)
{
if(m_bWorking)
{
pCmdUI->Enable(0);
}else
{
pCmdUI->Enable(0);
}
}再就是,工作执行完之后,自然要恢复菜单,用户可以进行其他的
操作, 我的想法是调用 OnUpdateNewSniff()函数,不过这个函数
要传入 pCmdUI参数,比较麻烦,大家有什么好的办法?
解决方案 »
- 是不是只有MFC里面才能用DEBUG_NEW呢?普通VC程序不能?
- 编译错误!
- CInternetSession,打开连接后的关闭,怎么操作
- Bitmap为什么不能使用指针传递?
- 100分急求!!!!SDI程序中,如何在CWinapp类中获得CDocument的指针??
- bmp缩放
- 还是CTreeCtrl,请教复选框
- 词法解析:大家来提解决方案。。(········来者有分!·········)
- 仰天长笑,号称CSDN(“中国”软件开发网),却。。。
- ?我现在的构造COM+的各们组件都完成了,但是我如何形成COM+程序啊,也就是那个扩展名为msi的两个文件
- ctreectrl item标题是中文乱码问题!
- 请问注册并使用过的*.DLL文件,如何不重新启动电脑将其删除?
{
pCmdUI->Enable(0);
}else
{
pCmdUI->Enable(0);
}
oMainMenu.LoadMenu(IDR_MAINFRAME);
CMenu* pDataMenu = oMainMenu.GetSubMenu(1);//取得要刷新子菜单所在的菜单指针;
::SendMessage(AfxGetMainWnd()->m_hWnd, WM_INITMENUPOPUP, int(pDataMenu->m_hMenu), FALSE);这样能确保刷新,而且不需要传CCmdUI* pCmdUI参数,还比较方便,你试试看吧