怎么初始化MFC主对话框界面
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么初始化MFC主对话框界面相关的知识,希望对你有一定的参考价值。
运行的界面如图1,但界面理应如图2,请问如何初始化?
重写OnInitDialog函数,这个是对话框的初始化函数,需要初始化的代码写在这个函数就可以了。如果没有OnInitDialog函数,按如下步骤添加:
1. vc6.0版本
类视图 ---> 右键对话框--->添加windows消息事件(add Windows Message....) ---
---> 双击 WM_INITDIALOG
2. vs版本
类视图 ---> 右键对话框类 ---> 属性--->重写---->添加 OnInitDialog 参考技术A 重载对话框(CDialog)的OnInitDialog() 函数即可,可以在其中直接调整对话框内的控件位置及大小,当然也可以设置对话框的大小。
控件可能是已经设置的控件变量,或者可以通过ID获得,如 CWnd * pWnd = GetDlgItem(ID_CTROL);
GetWindowRect 获得控件的大小
用 MoveWindow 或 SetWindowPos 设置新的位置大小等
一般在可视化界面编辑器中调整即可。对于动态生成的控件等习惯在这里设置
如果窗口在运行时大小变化,可以考虑在 OnSize 中处理。
但建议把调整大小的代码单独写在一个函数中,并可在 OnInitDialog() 和 OnSize() 等地方调用。
如果要禁止大小变化,应在对话框模板中设置窗口边框为不可调整的。追问
我重新换了一个代码,就好了~~~也不知道什么原因。
本回答被提问者和网友采纳 参考技术B 在OnInitDialog() 函数里面进行初始化,这个方式只对程序刚启动有效,对于上面控件尺寸调整,可以在 WM_SIZE消息函数理进行尺寸调整,但要注意,在进行控件只存调整之前一定要先判断控件句柄是否有效,否则程序会崩溃. 参考技术C 处理 WM_SIZE消息就可以实现.通过计算客户区的大小,然后各个控件的所需要的大小就可以.
MFC怎么调用其它窗口
就是在界面中建立一个按键,怎么使这个按键按下去弹出另一个建好 窗口、
参考技术A MFC的对话框分为模式对话框和非模式对话框,模式对话框直接调用DoModal(),例如:CTestDlg dlg;
if(IDOK == dlg.DoModal())//对话框按下确定
//do something
非模式对话框需要利用对话框的Create函数,而且不能使局部变量,例如:
在父对话框包含成员CTestDlg m_dlg;
在父对话框的初始化函数中调用m_dlg.Create(IDD_DIALOG1);
在需要显示对话框的位置调用m_dlg.ShowWindow(SW_SHOW);追问
我先建立了一个主窗口,然后添加了一个按键,又插入了一个Dialog子窗口,我想问的是在主窗口点击下按键然后子窗口弹出来这种的。
本回答被提问者采纳以上是关于怎么初始化MFC主对话框界面的主要内容,如果未能解决你的问题,请参考以下文章