基于对话框的应用程序.ppt
《基于对话框的应用程序.ppt》由会员分享,可在线阅读,更多相关《基于对话框的应用程序.ppt(41页珍藏版)》请在沃文网上搜索。
1、第七章 基于对话框的应用程序7 7.1.1 WindowsWindows编程基础编程基础7.2 7.2 基于对话框的应用程序基于对话框的应用程序7.3 7.3 静态文本框静态文本框7.4 7.4 框架、单选按钮和复选框框架、单选按钮和复选框7.5 7.5 列表框和组合框列表框和组合框7.6 7.6 滚动条滚动条7.7 7.7 程序举例程序举例 7.1 7.1 WindowsWindows编程基础编程基础 Windows应用程序的特点:应用程序的特点:具有标准的图形用户界面。具有标准的图形用户界面。具有与硬件无关的特性。具有与硬件无关的特性。采用采用“消息传递,事件驱动消息传递,事件驱动”的运行
2、机制的运行机制。Visual C+编写编写Windows应用程序应用程序使用使用API函数函数MFC:Microsoft Foundation Class微软基础类微软基础类 API:Application Programming Interface 应用程序接口应用程序接口 使用使用MFC主函数:主函数:WinMain()7.1.1 7.1.1 APIAPI编程编程 共有上千个标准的共有上千个标准的API函数函数调用方法与调用调用方法与调用C语言库函数类似语言库函数类似示例:示例:s注意:不是典型的Windows应用程序典型WinMain具有固定结构,完成三个任务:注册窗口类注册窗口类 创建
3、并初始化窗口创建并初始化窗口 创建消息循环创建消息循环7.1.1 7.1.1 MFCMFC编程编程 封装了大部分封装了大部分Windows API函数函数 200多个类:CObject类的派生类 非非CObject派生类派生类,如CPoint、CRect等VC+:MFC类应用程序向导开发工具MFC AppWizard(exe)创建三类程序:基于对话框的应用程序 单文档界面(SDI)应用程序 多文档界面(MDI)应用程序 1.建立应用程序框架;建立应用程序框架;2.放置控件;放置控件;3.设置控件属性;设置控件属性;4.为控件连接变量;为控件连接变量;5.添加、编写消息处理函数添加、编写消息处理
4、函数【例【例7.1】7.2 7.2 基于对话框的应用程序基于对话框的应用程序 属性设置属性设置Member Variable name:m_e1Category:Control Variable type:CEdit Member Variable name:m_e2Category:Control Variable type:CEdit void CTESTDlg:OnButton1()/TODO:Add your control notification handler code herem_e1.SetSel(0,-1);/选定编辑框选定编辑框m_e1中的所有内容中的所有内容m_e1.C
5、opy();/把编辑框把编辑框m_e1中选定的内容复制到剪贴板中选定的内容复制到剪贴板m_e2.SetSel(0,-1);/选定编辑框选定编辑框m_e2中的所有内容中的所有内容m_e2.Paste();/将剪贴板中内容粘贴到编辑框将剪贴板中内容粘贴到编辑框m_e2中,中,/替换所有选定的内容替换所有选定的内容void CTESTDlg:OnButton2()/TODO:Add your control notification handler code hereOnOK();/退出对话框程序退出对话框程序添加、编写消息处理函数7.2.2 7.2.2 对话框应用程序框架对话框应用程序框架 1Re
6、sourceView对话框界面是一种资源双击IDD_TEST_DIALOG显示对话框设计界面对话框ID2ClassViewCAboutDlg:对应生成的版本信息对话框。CTESTDlg:对话框类,从CDialog继承,设计的对话框。CTESTApp:应用程序类,从CWinApp继承,封装了初始化、运行、终止该程序的代码。4控件工具栏7.3 7.3 静态文本框、命令按钮和编辑框静态文本框、命令按钮和编辑框 CStatic类对象:静态文本框框架 CButton类对象:命令按钮单选按钮、复选框 CEdit类 对象:编辑框 7.3.1 7.3.1 静态文本框静态文本框 一般不需要连接变量,不需要消息处
7、理函数。一般不需要连接变量,不需要消息处理函数。缺省缺省ID为为IDC_STATIC 7.3.2 7.3.2 命令按钮命令按钮 重要属性:标题属性重要属性:标题属性不需要连接变量。不需要连接变量。重要消息:重要消息:BN_CLICKED7.3.3 7.3.3 编辑框编辑框 1.重要属性Multiline:定义该编辑框为多行文本框。Number:限定输入的字符只能是数字字符。Border:为控件创建边界。Read-only:编辑框成为只读的,禁止用户编辑。1.重要属性Multiline:定义该编辑框为多行文本框。Number:限定输入的字符只能是数字字符。Border:为控件创建边界。Read-
8、only:编辑框成为只读的,禁止用户编辑。2.成员函数 从从CWnd类继承的成员函数类继承的成员函数(1)将编辑框中的内容复制出来/复制到CString对象void GetWindowText(CString&rString)const;示例:CString ch;m_e.GetWindowText(ch);/复制到数组int GetWindowText(LPTSTR lpszStringBuf,int nMaxCount)const;示例:char ch80;m_e.GetWindowText(ch,80);(2)设置编辑框中的内容void SetWindowText(LPCTSTR lps
9、zString);示例:char ch20=abcdefg;m_e.SetWindowText(ch);3.连接变量Control:只能是CEdit类型Value:CString int double等注意:可以使用相应类型函数,但不能使用关于控件的函数变量类型 编辑框与变量之间的内容更新【例【例7.2】输入一元二次方程ax2+bx+c=0的系数a、b、c,计算并输出两个根x1、x2 m_x1(double)m_x2(double)m_a(double)m_b(double)m_c(double)void CTESTDlg:OnCalc()UpdateData(TRUE);double a=m
10、_a;double b=m_b;double c=m_c;m_x1=(-b+sqrt(b*b-4*a*c)/(2*a);m_x2=(-b-sqrt(b*b-4*a*c)/(2*a);UpdateData(FALSE);void CTESTDlg:OnOk()OnOK();ID:OkID:Calc【例【例7.3】字符串转换程序字符串转换程序 转换规则为:大写字母转换成小写;转换规则为:大写字母转换成小写;将小写字母转换成大写;将小写字母转换成大写;换行符和回车符不变;换行符和回车符不变;其余字符转换为其余字符转换为“*”要求:每输入一个字符立即转换要求:每输入一个字符立即转换 m_e1(Cont
11、rol)m_e2(Control)选定:Multiline Vertical scroll Auto VScroll Want return选定:Multiline Vertical scroll Auto VScroll Read-only EN_CHANGE 消息处理函数 void CTESTDlg:OnChangeEdit1()/TODO:Add your control notification handler code herechar s80;m_e1.GetWindowText(s,80);for(int i=0;si!=0;i+)if(si=A&si=a&si=z)si=si+
12、A-a;elseif(si=n|si=r)si=si;else si=*;m_e2.SetWindowText(s);7.4 7.4 框架、单选按钮和复选框框架、单选按钮和复选框 7.4.1 7.4.1 框架框架 作用:标识一组控件作用:标识一组控件不需要连接变量,不需要处理消息不需要连接变量,不需要处理消息。缺省缺省ID:IDC_STATIC 重要属性:标题属性属性:标题属性7.4.2 7.4.2 单选按钮单选按钮1设计要求设计要求同一组按钮:必须同一组按钮:必须连续连续放入,中间不能插入其他控件放入,中间不能插入其他控件第一个按扭要选中第一个按扭要选中Group属性属性Member Var
13、iables选项卡中第一个按钮显示选项卡中第一个按钮显示ID2重要属性重要属性ID:如如IDC_RADIO1标题:右边显示的文本信息标题:右边显示的文本信息Group:一组中第一个按钮选中该属性一组中第一个按钮选中该属性3消息消息BN_CLICKED4重要函数重要函数设定单选按钮选中状态设定单选按钮选中状态初始时使用初始时使用void CheckRadioButton(int nIDFirstButton,int nIDLastButton,int nIDCheckButton);nIDFirstButton:一组中第一个单选按钮的一组中第一个单选按钮的ID nIDLastButton:一组中
14、最后一个单选按钮的一组中最后一个单选按钮的ID nIDCheckButton:初始时设置为选中状态的单选按钮初始时设置为选中状态的单选按钮ID判定是否被选定判定是否被选定UINT IsDlgButtonChecked(int nIDButton)const;返回值:返回值:true:选定选定false:没有选定没有选定【例【例7.47.4】当当单击单击“确定确定”后,用后,用AfxMessageBoxAfxMessageBox函数函数显显示有关信息示有关信息m_e(CString)初始化初始化BOOL CTESTDlg:OnInitDialog()CheckRadioButton(IDC_RA
15、DIO1,IDC_RADIO2,IDC_RADIO1);CheckRadioButton(IDC_RADIO3,IDC_RADIO5,IDC_RADIO3);消息处理函数消息处理函数void CTESTDlg:OnButton1()/TODO:Add your control notification handler code hereUpdateData(TRUE);CString s;s=s+m_e;if(IsDlgButtonChecked(IDC_RADIO1)s=s+男;elses=s+女;if(IsDlgButtonChecked(IDC_RADIO3)s=s+教授;else if
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 对话框 应用程序