模态对话框/非模态对话框/系统对话框CColorDialog 置顶问题/显示最前面/TopMost
2016-09-21 17:53
681 查看
问题. 当主对话框A是非模态对话框时,对话框B等以模态对话框弹出时, 如CColorDialog dlg; dlg.DoModal(); 时无法位于最前面,怎么办?
解决方法:( 我们分3种情况考虑)
1. 将主对话框A也设置为模态对话框。后来弹出的模态对话框自然在最前面;
2. 若副对话框B不是等系统对话框(如CColorDialog),而是自定义对话框,则 在系统消息OnInitDialog() 中设置
SetWindowPos(&CWnd::wndTopMost,0,0,0,0, SWP_NOMOVE|SWP_NOSIZE); //置顶
3. 若副对话框是系统对话框,如CColorDialog,则重写OnInitDialog(), 代码如下:
// 说明:置顶颜色对话框 [9/21/2016 ZOSH];
class CMyTopColorDialog : public CColorDialog
{
public:
BOOL OnInitDialog()
{
SetWindowPos(&CWnd::wndTopMost,0,0,0,0, SWP_NOMOVE|SWP_NOSIZE);//置顶
return CColorDialog::OnInitDialog();
}
CMyTopColorDialog()
{
}
~CMyTopColorDialog()
{
}
};
因此,将CColorDialog dlg; dlg.DoModal(); 替换为CMyTopColorDialog dlg; dlg.DoModal(); 即可!
2016年9月记 - ZOSH!
解决方法:( 我们分3种情况考虑)
1. 将主对话框A也设置为模态对话框。后来弹出的模态对话框自然在最前面;
2. 若副对话框B不是等系统对话框(如CColorDialog),而是自定义对话框,则 在系统消息OnInitDialog() 中设置
SetWindowPos(&CWnd::wndTopMost,0,0,0,0, SWP_NOMOVE|SWP_NOSIZE); //置顶
3. 若副对话框是系统对话框,如CColorDialog,则重写OnInitDialog(), 代码如下:
// 说明:置顶颜色对话框 [9/21/2016 ZOSH];
class CMyTopColorDialog : public CColorDialog
{
public:
BOOL OnInitDialog()
{
SetWindowPos(&CWnd::wndTopMost,0,0,0,0, SWP_NOMOVE|SWP_NOSIZE);//置顶
return CColorDialog::OnInitDialog();
}
CMyTopColorDialog()
{
}
~CMyTopColorDialog()
{
}
};
因此,将CColorDialog dlg; dlg.DoModal(); 替换为CMyTopColorDialog dlg; dlg.DoModal(); 即可!
2016年9月记 - ZOSH!
相关文章推荐
- How to show a modal dialog and modeless dialog using C++ - 如何用C++显示一个模态对话框和一个非模态对话框
- 装了双系统开机不显示选择对话框的问题
- 利用WH_CBT Hook将非模态对话框显示为模态对话框
- 将非模态对话框显示为模态对话框
- MFC学习笔记(四)- 模态对话框与非模态对话框的创建与显示
- 将非模态对话框显示为模态对话框
- MFC学习笔记(一):模态对话框与非模态对话框的区别、创建及显示
- 利用WH_CBT Hook将非模态对话框显示为模态对话框
- pyQT中模态对话框与非模态对话框(解决一闪而过)的显示源码
- Bootstrap3 多个模态对话框无法显示的问题
- Bootstrap3 多个模态对话框无法显示的问题
- 关于模态对话框和非模态对话框的创建、显示,以及和父对话框的传值
- Bootstrap3 多个模态对话框无法显示的问题
- qfiledialog不能翻译的问题(始终显示系统的对话框)
- WinForm中ColorDialog.CustomColors显示不正确的问题
- 利用WH_CBT Hook将非模态对话框显示为模态对话框
- WH_CBT Hook将非模态对话框显示为模态对话框
- 母版页使用问题(显示系统时间 js)
- 设置字体的模态对话框跑到主窗体下面的问题
- 显示系统文件属性对话框