| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 986 人关注过本帖
标题:关于无模式对话框唯一性如何实现
取消只看楼主 加入收藏
lyd253261362
Rank: 1
等 级:新手上路
帖 子:91
专家分:2
注 册:2007-4-26
结帖率:100%
收藏
 问题点数:0 回复次数:1 
关于无模式对话框唯一性如何实现

对于无模式对话框的唯一性,如何用代码去实现:一个单文档的项目,在菜单中做个子菜单,单击“子菜单”弹出无模式对话框,如何控制,单再次单击“子菜单”是不在显示那个无模式对话框啊!赐教!!!!!!!!!!!
我是这样创建无模式对话框的:给菜单的子菜单,创建一个函数,放在CMainFrame中,在函数中添加如下代码:
CTREEPROPERTYDLG *dlg=new CTREEPROPERTYDLG;
if(dlg->GetSafeHwnd()==0)
{
dlg->Create(IDD_DIALOG_PROPERTY,NULL);

}
dlg->ShowWindow(SW_SHOW);
对于无模式对话框是可以实现,但是,当我再次单击“子菜单”是,又出现一个相同的对话框。如何实现当我再次单击“子菜单”时,不在出现那个对话框啊!!
请高手赐教!!!!

[此贴子已经被作者于2007-5-29 12:29:20编辑过]

搜索更多相关主题的帖子: 唯一性 对话框 模式 
2007-05-28 14:23
lyd253261362
Rank: 1
等 级:新手上路
帖 子:91
专家分:2
注 册:2007-4-26
收藏
得分:0 

本人是采用如下方法解决的:
第一步,在类CMainFrame的.cpp文件中加入bool m_bool=TRUE;//全局变量
这样创建无模式对话框的:给菜单的子菜单,创建一个函数,放在CMainFrame中,在函数中添加如下代码:
CTREEPROPERTYDLG *dlg=new CTREEPROPERTYDLG;
if(m_bool)
{
dlg->Create(IDD_DIALOG_PROPERTY,NULL);
dlg->ShowWindow(SW_SHOW);
m_bool=FALSE;
}
第二步,通过调用全局变量,在把菜单变成可以操作的!
在对话框类 CTREEPROPERTYDLG 的.cpp文件中加入如下代码:
extern bool m_bool;
void CTREEPROPERTYDLG::OnDestroy()
{
CTREEPROPERTYDLG::OnDestroy();
//AfxMessageBox("call delete this");
delete this;
m_bool=TRUE;
}
总结,通过以上代码修改,就可以实现自己的无模式对话框的唯一性的操作!

2007-05-29 12:39
快速回复:关于无模式对话框唯一性如何实现
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030275 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved