社区
界面
帖子详情
如何使一个对话框在模态与非模态进行切换?在线等
lc2236
2009-09-25 11:18:32
如题 :
动态创一个对话框,可否根据需要将此对话框风格在模态与非模态进行切换?
...全文
142
18
打赏
收藏
如何使一个对话框在模态与非模态进行切换?在线等
如题 : 动态创一个对话框,可否根据需要将此对话框风格在模态与非模态进行切换?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
z8y8x
2010-01-08
打赏
举报
回复
UP
lc2236
2009-09-25
打赏
举报
回复
try
{
楼上
}
WuXinyang
2009-09-25
打赏
举报
回复
这个好办。
点模态按钮的时候,直接把非模态的ShowWindow(SW_HIDE)掉,再DoModal()出来一个;
点非模态的时候,直接调用模态的OnCancel(),之后把非模态的那个ShowWindow(SW_SHOW)出来。
祝楼主成功!
lc2236
2009-09-25
打赏
举报
回复
实际应用中是这样的:
最初建立对话框时是模态的,状态的切换是在对话框中由用户决定的,即此对话框对父类有进行交互和进行屏蔽交互操作的双重需要。
lc2236
2009-09-25
打赏
举报
回复
[Quote=引用 4 楼 fandh 的回复:]
将带有数据的对话框,创建成非模态对话框,同时,不能自己移动、没有标题什么的
然后,创建两个对话框,一个非模态、一个模态,显示后,将数据对话框显示出来挡在这两个对话框的客户区!
这样算下来,要3个对话框了!
[/Quote]
如果显示区域不可MOve 不能满足要求,有可能对话框挡住父窗口的交互部分
lc2236
2009-09-25
打赏
举报
回复
希望对一个对话框类对象操作,并且是运行时刻改变其模态,本来想使用SetWindowLongEX等,未果。
试想SetWindowPos是否可行,
marrco2005
2009-09-25
打赏
举报
回复
单单改变风格是无法实现的
marrco2005
2009-09-25
打赏
举报
回复
CMyDlg 创建的对话框必须是new 出来的,或者是全局的
class CMyDlg
{
public:
BOOL m_bModal;
public:
int ShowMyDialog( BOOL bModal )
{
m_bModal = bModal;
if ( m_bModal)
{
return DoModal();
}
else
{
Create( );
}
return 0;
}
// 在 OnOK 和 OnCancel 里面判断一下
void OnOk()
{
if ( m_bModal )
{
CDialog::OnOK();
}
else
{
DestroyWindow();
}
}
OnCancel 也一样
}
watergear
2009-09-25
打赏
举报
回复
应该可以做到。就是有点麻烦。
1. 把窗口建成非模态的。然后设置一个全局状态变量,用于标记当前窗口所趋向的模态/非模态状态。
2. 改写主窗口消息循环,如果此全局状态量为表示模态,则屏蔽HWND不是此窗口的所有消息。
当程序需要时,可以随时修改全局状态变量,以达到切换模态/非模态的目的。
allenhiman
2009-09-25
打赏
举报
回复
改变对话框的m_pParentWnd就可以了吧,domodal的dlg只是锁定这个m_pParentWnd
soliddream66
2009-09-25
打赏
举报
回复
有点意思,还没考虑过
也许可以换一个思维
不是从模态、非模态角度看,而是从能否切换的角度来看,或许有什么技术手段能够使非模态对话框不能切换,或者相反
oyljerry
2009-09-25
打赏
举报
回复
[Quote=引用 3 楼 lc2236 的回复:]
re2 多谢回复
但主要考虑使用同一对话框类的数据,我想知道通过是否能够通过 改变窗口风格来实现,如果不能就想别的办法了
[/Quote]
对话框可以用一个类,只不过一个DoModal方式,一个Create方式
不过对话框之间要数据交换
fishion
2009-09-25
打赏
举报
回复
模态窗口只能关闭了才能够继续执行,非模态的就不用,如果需要数据一样的,最好就是把数据保存起来,当调用对话框时就把数据赋值到这个对话框上
fandh
2009-09-25
打赏
举报
回复
将带有数据的对话框,创建成非模态对话框,同时,不能自己移动、没有标题什么的
然后,创建两个对话框,一个非模态、一个模态,显示后,将数据对话框显示出来挡在这两个对话框的客户区!
这样算下来,要3个对话框了!
lc2236
2009-09-25
打赏
举报
回复
re2 多谢回复
但主要考虑使用同一对话框类的数据,我想知道通过是否能够通过 改变窗口风格来实现,如果不能就想别的办法了
周成风
2009-09-25
打赏
举报
回复
创建的方式不一样吧,应该可以实现。切换的时候如楼上所说,切换不频繁的话,可以直接销毁一个,创建另一个。
oyljerry
2009-09-25
打赏
举报
回复
可以做两个对话框,一个模态,一个非模态,切换的时候隐藏一个,显示另一个
allenhiman
2009-09-25
打赏
举报
回复
我的方法可行,实验了
VC 非
模态
对话框
之间的
切换
一个
小例子:非
模态
对话框
之间的
切换
,欢迎下载学习
vc实现利用多线程制作
模态
对话框
的进度条
要制作的进度条,可以显示进度,还可以
进行
中断操作,还要是
模态
对话框
下面的,也就是在处理
一个
数据的时候(进度条在更新),不允许
切换
到程序窗口。
多
模态
人物识别技术及其在视频场景中的应用
本次分享将介绍爱奇艺人物识别及相关的应用,多
模态
的进展、难点、可落地的点,卡通角色识别的难点、应用中所要解决的问题,AIWWorks智能创作的技术架构、所利用到的AI技术总览、AI所擅长的及AI所不能及的创作点。
VC MFC非
模态
对话框
的实现方法
众所周知的,MFC中非
模态
对话框
在显示后,程序其他窗口仍能正常运行,可以响应用户输入,还可以相互
切换
。本文就来给大家讲解一下非
模态
对话框
的实现方法: 一、非
模态
对话框
的
对话框
资源和
对话框
类 实际上,
模态
对话框
和非
模态
对话框
在创建
对话框
资源和生成
对话框
类上是没有区别的,因此,在创建
模态
对话框
时所创建的IDD_TIP_DIALOG
对话框
资源和CTipDlg类都不需要修改。 二、创建及显示非
模态
对话框
的步骤 需要修改的是,
对话框
类实例的创建和显示,也就是之前在CAdditionDlg::OnBnClickedAddButton()函数体中添加的
对话框
显示代码。下面是具体步骤: 1. 在Additio
使用selenium测试showModalDialog
模态
对话框
Selenium目前没有提供对IE
模态
对话框
(即通过showModalDialog方法打开的弹出
对话框
)的处理。原因在于,
模态
对话框
会将父页面的 JS挂起,直至
对话框
处理完毕才会继续执行父页面JS。因为Selenium的底层实现是基于JS的,所以
模态
对话框
会同时将selenium挂 起,selenium无法选中
模态
对话框
,直至超时。
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章