文档介绍:课题: Windows 标准控件
目的要求:
了解基于对话框应用程序的运行机制
掌握windows标准控件的属性及使用
掌握windows标准控件的编程方法
掌握类向导创建变量和消息响应函数
教学重点:
windows标准控件的属性及使用
教学难点:
windows标准控件的属性及使用
教学课时: 4
教学方法: 讲练结合
教学内容与步骤:
基于对话框应用程序:对话框作为程序主界面,主要用于输出信息和接收用户数据输入。
对话框是Windows应用程序中一种常用的资源,其主要功能是输出信息和接收用户的输入数据。在MFC中,对话框的功能被封装在CDialog类中,而CDialog类是CWnd类的派生类,而用户创建的对话框类一般都是CDialog类的派生类,从头文件中可看出。作为窗口,对话框和其它窗口一样具有窗口的一切功能。对话框的一个典型应用是通过菜单命令或工具栏按钮打开一个对话框,当然,对话框也可以作为一个程序的主界面。
创建基于对话框应用程序:
利用MFC AppWizard向导创建一个基于对话框的应用程序框架。
利用对话框编辑器和控件工具栏浮动窗口,进行可视化界面设计。
根据程序具体功能要求添加代码,或添加成员变量和成员函数完成相应功能。
例:编写一个对话框应用程序MyDialog,程序运行后显示一个对话框,并在对话框上显示文本串。如下图。
步骤:
1,应利用用程序向导MFC AppWizard生成基于Dialog Based的应用程序项目,程序名为:MyDialog。
2,去掉对话框中静态文本控件,其标题为“TODO: 在这里设置对话控制”,调整对话框大小。
3,在成员函数CMyDialogDlg::OnPaint()中添加代码
CPaintDC dc(this);
(TRANSPARENT);
(20, 50, "这是一个对话框应用程序!");
对话框类的结构:
对话框应用程序包含的类及主对话框类的主要成员:应用程序名设为test
三个类:CtestApp, CtestDlg, CAboutDlg
2,CDialog类从CWnd类派生而来,所以它继承了CWnd类的成员函数,具有CWnd类的基本功能,可以编写代码移动、显示或隐藏对话框,你的CDialog类的派生类中可以直接调用CDialog类的成员函数。
3,常用处理函数
CDialog::CDialog() 通过调用派生类构造函数,根据对话框资源模板定义一个对话框。
CDialog::OnOk()单击OK按钮时调用该函数,接收对话框输入数据,关闭对话框。
CDialog::OnCancel()
单击Cancel按钮或按Esc键时调用该函数,不接收对话框输入数据,关闭对话框。
CDialog::OnInitDialog() 在显示对话框前调用该函数进行初始化。
CDialog::DoModal() 激活模态对话框,显示对话框窗口。
CDialog::Create() 根据对话框资源模板创建非模态对话框窗口。如果对话框不是Visible属性,还需通过调用CWnd::ShowWindow()函数显示非模态对话框窗口。
CWnd::ShowWindow(true,false) 显示或隐藏对话框窗口
CWnd::UpdateData() 通过调用DoDataExchange()设置或获取对话框控件的数据
CWnd::DoDataExchange() 被UpdateData()调用以实现对话框数据交换,不能直接调用。
CWnd::GetWindowText() 获取对话框窗口的标题
CWnd::SetWindowText() 修改对话框窗口的标题
CWnd::GetDlgItemText() 获取对话框中控件的文本内容
CWnd::SetDlgItemText() 设置对话框中控件的文本内容
CWnd::GetDlgItem() 获取控件或子窗口的指针
CWnd::MoveWindow() 用于移动对话框窗口
CWnd::EnableWindow() 使窗口处于禁用或可用状态
CWnd::CheckRadioButton 设置单选按钮选中项
CWnd::GetCheckedRadioButton 获取单选按钮选中项
对话框数据交换DDX和验证DDV:
通过ClassWizard类向导将对话框控件与成员变量相关联。
调用UpdateData()时MFC通过调用DoDataExchange(){},实现对话框数据的交换DDX和验证DDV。调用UpdateData(TRUE)函数时,DDX将数据从控件传递到关