MFC 基于对话框的项目如何添加子对话框以及相关知识
2014-08-22 14:25
302 查看
<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: rgb(255, 255, 255);">1.在资源视图中选中Dialog,右键选择“插入Dialog”;</span>
2.选中该对话框,右键选择“添加类”
3.填写类名,注意类名以大写C开头儿,第二个字母也大写,比如CTest
4.生成的Test.h头文件内容如下:
#pragma once // CTest 对话框 class CTest : public CDialogEx { DECLARE_DYNAMIC(CTest) public: CTest(CWnd* pParent = NULL); // 标准构造函数 virtual ~CTest(); // 对话框数据 enum { IDD = IDD_DIALOG1 }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 DECLARE_MESSAGE_MAP() };
分析:有一个默认的构造函数,一个析构函数,没有对话框初始化函数virtual BOOL OnInitDialog();而假如该子对话框上有一些其他的控件,这些控件的初始化工作需要在OnInitDialog();中完成,这样就需要手动添加该函数。
头文件中增加:protected: virtual BOOL OnInitDialog();
源文件中增加:
BOOL CDATE::OnInitDialog()//没有virtual { CDialogEx::OnInitDialog(); //其他自己的初始化代码开始 //其他自己的初始化代码结束 return TRUE; }5.如果需要在创建该子对话框时候,传进初始化数据,则需要创建自己的构造函数来完成该功能。比如:
在头文件中增加:CTest(CWnd* pParent = NULL,CString str1,CString str2); // 自己构造函数
其中,str1和str2是外界传进来的参数。用以初始化该子窗口中的某些成员数据,比如:CString m_str1; CString m_str2;
在源文件中增加:
CTest::CTest(CWnd* pParent = NULL,CString str1,CString str2) // 自己构造函数
{
m_str1 = str1;
m_str2 = str2;
}
6.如果要避免按下回车时候对话框消失的问题,需要在头文件添加如下:
BOOL PreTranslateMessage(MSG* pMsg);
在源文件中添加如下:
BOOL CDATE::PreTranslateMessage(MSG* pMsg)
{
//拦截回车键
if (WM_KEYDOWN == pMsg-> message && VK_RETURN == pMsg-> wParam)
{
return FALSE;
}
return CDialog::PreTranslateMessage(pMsg);
}
相关文章推荐
- 在基于对话框的MFC创建状态栏以及添加时间显示
- VS如何为基于对话框的MFC添加下拉菜单
- MFC 基于对话框 程序,如何添加状态栏
- mfc对话框程序如何添加背景图片以及使控件背景图片与对话框一致
- 在基于对话框的MFC中添加工具栏以及工具栏提示信息并改变图标支持256色
- MFC基于对话框如何添加位图并使位图背景透明(TransparentBlt函数)
- VS如何为基于对话框的MFC添加菜单及菜单项事件
- MFC基于对话框最小化到托盘,并鼠标右键添加菜单以及对应菜单功能
- MFC对话框初始化运行时如何隐藏,托盘图标,任务栏图标的相关问题
- MFC 对话框应用程序去掉标题栏如何添加鼠标移动功能
- MFC基于对话框风格按钮控件添加图片的方法(大神止步)
- 如何在MFC对话框中添加背景图片
- 如何给MFC对话框添加背景图片
- 基于MFC的对话框添加ToolTip的简单方法
- MFC中 给基于对话框的应用程序添加登陆界面
- 如何给MFC对话框添加背景图片 .
- 为基于MFC的对话框添加ToolTip的简单方法
- VC++学习笔记2--------------如何给MFC对话框添加背景图片
- MFC添加消息、隐藏对话框项目界面
- MFC中对话框添加工具栏以及去除工具栏上方的横线