对话框DoModal()后假死

Terryjia 2010-08-17 08:56:32
声明一个对话框变量dlg,然后调用DoModal()方法后弹出的对话框不能进行任何操作,和假死一样。必须却换一下窗口才正常。请问什么原因啊。开始以为是对话框的问题,后来从新建立了一个新的没有任何控件的对话框还是这样。
...全文
296 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Terryjia 2010-08-17
  • 打赏
  • 举报
回复
找到问题了 右键的时候调用了父类CTREECTRL的右键消息,去掉就OK了
Terryjia 2010-08-17
  • 打赏
  • 举报
回复
void CNewTreeCtrl::ShowPopupMenu(BYTE action,CPoint point)
{
CMenu m_popupMenu;
CMenu* pSubMenu;

ClientToScreen(&point);

m_popupMenu.LoadMenu(IDR_CONFIGPSC_MENU);
pSubMenu = m_popupMenu.GetSubMenu(0);

pSubMenu->EnableMenuItem(ID_ADDPSC,MF_ENABLED);
pSubMenu->EnableMenuItem(ID_UPDATAPSC,MF_ENABLED);
pSubMenu->EnableMenuItem(ID_DELETEPSC,MF_ENABLED);

switch(action)
{
case 0://add
pSubMenu->EnableMenuItem(ID_DELETEPSC,MF_GRAYED);
pSubMenu->EnableMenuItem(ID_UPDATAPSC,MF_GRAYED);
pSubMenu->EnableMenuItem(ID_ADDPSC,MF_ENABLED);
break;
case 1://update,delete
pSubMenu->EnableMenuItem(ID_DELETEPSC,MF_ENABLED);
pSubMenu->EnableMenuItem(ID_UPDATAPSC,MF_ENABLED);
pSubMenu->EnableMenuItem(ID_ADDPSC,MF_GRAYED);
break;
default:
break;
}
pSubMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON, point.x,point.y,this);
}
我是右键生成一个菜单,点击其中的ID_ADDPSC中Domodal的
wolfmvp 2010-08-17
  • 打赏
  • 举报
回复
利用DoModal方法创建的对话框是模态对话框,在该对话框的有效期内,其它对话框的所有操作都会被挂起,直到该对话框被关闭为止。建议楼主试试非模态对话框…
Yanger_xy 2010-08-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 grf9527 的回复:]
无源码,无真相,你把代码贴一下吧
[/Quote]
+1
grf9527 2010-08-17
  • 打赏
  • 举报
回复
无源码,无真相,你把代码贴一下吧
zc_china 2010-08-17
  • 打赏
  • 举报
回复
没遇到过~~
顶下
似水流年__ 2010-08-17
  • 打赏
  • 举报
回复
是不是有什么消息一直产生 。。。。。。。

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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