MFC SDI程序,可停靠窗口嵌入对话框,对话框的初始化怎么做
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC SDI程序,可停靠窗口嵌入对话框,对话框的初始化怎么做相关的知识,希望对你有一定的参考价值。
创建了一个SDI程序,生成了一个可停靠窗口,在可停靠窗口上嵌入了一个对话框资源(基类为CDialog),在添加的对话框类中重载了OnInitialDialog(),在里面添加了初始化程序(对对话框上的控件初始化,例如combo box初始化或改变颜色等),但是运行程序发现,对话框上的控件并没有得到初始化。。。急急急急急急,,,,,,,,,,,,求大大们给醍醐灌顶,在线等呀。。。。。。。。怎样初始化对话框上的控件呀
参考技术A从你的问题描述上看你 的OnInitialDialog函数没有重写成功。
重载是不可以的,你得重写。
说下重写的步骤,你对照下;
1、在对话框类的头文件里添加声明语句
virtual BOOL OnInitDialog();
这里要注意:OnInitDialog是一个虚函数
2、在对话框类的cpp文件里,进行定义:
BOOL CXXXDlg::OnInitDialog()// 这句很关键,千万不能少
CDialog::OnInitDialog();
// 下面写你的控件初始化,就可以了
......
return TRUE;
追问
我就是这样写的呀,而且在OninitialDialog里只写一句messagebox运行是可以的,能够看到弹出消息,这是程序框架没有出来,只是弹出一个消息,点击确定后,才出现程序框架
追答那是你的控件初始化的设置有问题。
参考技术B 我也遇到了这个问题,请问楼主解决没?MFC SDI 和对话框
【中文标题】MFC SDI 和对话框【英文标题】:MFC SDI and Dialog Boxes 【发布时间】:2014-08-06 05:02:01 【问题描述】:我想创建一个具有 5 个 SDI 格式的对话框类型窗口的应用程序。我需要对话框选项卡,以便用户可以单击不同的对话框窗口选项卡。此外,我不能同时显示任何两个对话框。
使用项目向导,我选择了一个 SDI 应用程序并创建了 5 个对话框。我使用 InitDialog 来最大化每个窗口。
不幸的是,只显示活动的对话窗口。我看不到选项卡式样式的其他四个窗口。
我做错了什么?
【问题讨论】:
也许你可以使用 CPropertySheet。或者带有 CFormView 的 SDI,以及里面的 Tab 控件。 【参考方案1】:如果您需要一次显示多个对话框,请使用 CDialog::Create 创建一个非模态对话框。
当您从“窗口选项卡”中谈论时,请查看 CPropertySheet 和 CPropertyPage。 CPropertySheet 也可以使用 CPropertySheet::Create 非模态创建。
【讨论】:
以上是关于MFC SDI程序,可停靠窗口嵌入对话框,对话框的初始化怎么做的主要内容,如果未能解决你的问题,请参考以下文章