对话框设置及常用控件,创建模/非模态对话框态对话框(VC_MFC)
2012-11-21 20:03
513 查看
目录
设置对话框背景颜色常用控件及对应类
创建模态/非模态对话框
为对话框控件添加关联变量
(本章节中例子都是用 VS2005 编译调试的)
设置对话框背景颜色
[利用 OnPaint 来实现修改对话框背景颜色][利用 OnCtlColor 实现修改对话框背景颜色]利用 OnPaint 来实现修改对话框背景颜色
说明: 在窗口重绘时候获得资源 DC 然后 FillSolidRect 函数用指定颜色填充整个对话框客户区域来实现修改对话框背景色流程图:
View Code
/* 派生类 .h 文件内容 *******************************/ class CMyDialog : public CDialog { DECLARE_DYNAMIC(CMyDialog) public: CMyDialog(CWnd* pParent = NULL); // 标准构造函数 virtual ~CMyDialog(); // 对话框数据 enum { IDD = IDD_DIALOG1 }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 DECLARE_MESSAGE_MAP() public: afx_msg void OnBnClickedButton1(); }; /* 派生类 .cpp 文件内容 *******************************/ IMPLEMENT_DYNAMIC(CMyDialog, CDialog) CMyDialog::CMyDialog(CWnd* pParent /*=NULL*/) : CDialog(CMyDialog::IDD, pParent) { } CMyDialog::~CMyDialog() { } void CMyDialog::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CMyDialog, CDialog) ON_BN_CLICKED(IDC_BUTTON1, &CMyDialog::OnBnClickedButton1) END_MESSAGE_MAP() // CMyDialog 消息处理程序 void CMyDialog::OnBnClickedButton1() { // TODO: 在此添加控件通知处理程序代码 //关闭非模态对话框 DestroyWindow(); }
在主对话框上添加两个按钮,然后添加事件响应中添加代码如下:
/* 创建非模态对话框按钮事件响应函数中添加代码 ***************/ //防止 m_dlg 在已经创建对话框资源 //并与对话框资源关联时候再次创建对话框 if(!m_dlg.GetSafeHwnd()) { //创建对话框 m_dlg.Create(IDD_DIALOG1); //显示对话框 m_dlg.ShowWindow(SW_SHOWNORMAL); } /* 关闭非模态对话框按钮事件响应函数中添加代码 ***************/ //关闭对话框 m_dlg.DestroyWindow();
运行结果:
为对话框控件添加关联变量
添加关联变量
利用向导添加控制变量
添加值变量
手动添加代码
添加关联控制/值变量
为类先添加关联的控制变量以上面图片位例子:
CEdit m_edit; //编辑框关联的控制变量 CString m_edit2; //编辑框关联的值变量
在 DoDataExchange 函数中添加控件与变量的关联,便完成了控件与变量的关联
void CtestDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //关联必须只能在 CDialog::DoDataExchange(pDX); 下添加 //将控件与控制变量相关联 DDX_Control(pDX, IDC_EDIT1, m_edit); //将控件与值变量相关联 DDX_Text(pDX, IDC_EDIT1, m_edit2); }
使用关联变量
在使用控件关联变量时候要注意,并不是控件与关联变量的状态是保持一致的,需要手动调用 CWnd 的 UpdateData 函数来保持控件的状态和关联变量的一致性.用关联变量值更新到控件上时需要用 UpdateData(FALSE); 来完成.
用关联变量接收控件的改变需要调用 UpdateData(); 来完成.
相关文章推荐
- MFC小程序003------MFC使用WebBrowser组件,在对话框中创建滚动视图,动态创建一个静态文本控件并设置鼠标单击的消息响应
- MFC小程序003------MFC使用WebBrowser组件,在对话框中创建滚动视图,动态创建一个静态文本控件并设置鼠标单击的消息响应
- MFC/VC++/VS 控件随对话框尺寸变化
- MFC对话框:设置对话框控件的Tab顺序
- MFC创建对话框组件对应变量并进行设置值(VS2010)
- MFC设置对话框背景色及控件颜色
- VS2010/MFC编程入门之八(对话框:创建对话框类和添加控件变量)
- VS2010/MFC编程入门之十一(对话框:非模态对话框的创建及显示)
- VC/MFC如何设置对话框背景颜色
- MFC 对话框动态创建简单的GridCtrl控件
- VC/MFC——如何设置对话框背景颜色
- VC设置对话框背景图片 MFC显示背景图片方法
- VS2010 C++ MFC框架学习笔记3 - 控件Tab顺序设置及模态对话框
- VC/MFC如何设置对话框背景颜色
- VC/MFC如何设置对话框背景颜色
- VS2010/MFC编程入门之十一(对话框:非模态对话框的创建及显示)
- VC MFC对话框背景颜色、控件颜色
- 创建用户控件自定义用户消息及调用(vc,mfc,消息影射)
- 关于设置对话框的背景颜色,和设置控件的字体颜色或背景颜色VC++
- VC中Windows常用控件的创建和使用