最传统的界面设计MF.ppt_第1页
最传统的界面设计MF.ppt_第2页
最传统的界面设计MF.ppt_第3页
最传统的界面设计MF.ppt_第4页
最传统的界面设计MF.ppt_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章 MFC用户界面设计,课程描述 Windows素来以用户界面友好而著称,使用MFC提供的丰富资源,程序员可以方便地设计开发出拥有友好用户界面的应用程序。,本章知识点,3.1 对话框编程 3.2 常用控件 3.3 在对话框中使用菜单,3.1 对话框编程,3.1.1 创建基于对话框的项目 3.1.2 设计对话框界面 3.1.3 添加对话框 3.1.4 为对话框绑定类,3.1.1 创建基于对话框的项目,建MFC应用程序向导,选择应用程序类型窗口,选择用户界面功能窗口,设置高级功能窗口,“生成的类”窗口,3.1.2 设计对话框界面,从工具箱中向窗体上添加控件,3.1.3 添加对话框,3.1.4

2、为对话框绑定类,右键单击对话框设计界面的空白处,在快捷菜单中选择“添加类”,打开“MFC类向导”对话框,如图3.10所示。,1添加消息处理程序,切换到对话框设计界面,在属性窗口中单击消息图标 ,可以查看到对话框中的消息,如图3.12所示。单击消息右侧的下拉框可以在对话框中添加消息对应的处理程序。,2重写CDialog类的函数,对话框类是CDialog的派生类,它可以重写CDialog类的成员函数,实现特定的功能。在Visual Studio的系统菜单中依次选择“视图”/“类视图”,可以打开类视图,如图3.13所示。 在类视图中选中对话框类,在属性窗口中单击“重写”图标 ,可以查看和设置需要重写

3、的函数,如图3.14所示。,3打开对话框,在程序中可以使用CDialog:DoModal()函数打开一个模式对话框,并返回用户操作的结果。假定对话框对应的类为CMyDialog,则使用下面的代码如下打开该对话框。 CMyDialog dlg; dlg.DoModal(); 当无法创建对话框或者用户关闭对话框时,DoModal()函数会返回一个int类型的值,具体说明如下: -1,表示无法创建该对话框。 IDABORT,表示用户单击对话框中的“终止”按钮,关闭对话框。 IDOK,表示用户单击对话框中的“确定”按钮,关闭对话框。 IDCANCEL,表示用户单击对话框中的“取消”按钮,关闭对话框。,

4、3.2 常用控件,3.2.1 静态文本框控件 3.2.2 文本编辑框控件 3.2.3 按钮控件 3.2.4 单选按钮控件 3.2.5 复选框控件 3.2.6 列表框控件 3.2.7 组合框控件 3.2.8 IP地址框控件 3.2.9 列表控件 3.2.10 CImageList类 3.2.11 常用控件应用示例,3.2.1 静态文本框控件,静态文本框控件的重要属性,3.2.2 文本编辑框控件,文本编辑框控件的重要属性,为文本编辑框控件添加变量,将文本编辑框对应变量的类别设置为Value,CEdit类的常用函数,GetDlgItem()函数,如果不希望将控件绑定到变量,也可以使用GetDlgIt

5、em()函数获取指定控件的句柄,然后再设置控件的属性。GetDlgItem()的函数原型如下: CWnd* GetDlgItem( int nID ) const; 参数nID表示控件的ID,返回结果为CWnd*类型的控件句柄。使用CWnd类的一些成员函,3.2.3 按钮控件,按钮控件的重要属性,添加按钮控件的事件处理代码,【例3.1】,在对话框中添加一个按钮,参照上面介绍的方法为该按钮添加单击事件的处理程序,代码如下: void CMfcAppDlg:OnBnClickedButton1() AfxMessageBox(ClickMe); 要使上面程序通过编译,需要修改项目默认的字符集。在V

6、isual Studio的系统菜单中选择“项目”/“属性”,打开项目属性对话框。在左侧的列表中选择“配置属性”/“常规”,在右侧将字符集修改为“未设置”,如图3.23所示。配置完成后,单击“确定”按钮。,3.2.4 单选按钮控件,单选按钮控件的重要属性,为单选按钮添加变量,只有将Group属性设置为True的单选按钮控件才能添加成员变量,否则单选按钮控件的ID将不会出现在控件ID组合框。,3.2.5 复选框控件,3.2.6 列表框控件,列表框控件的重要属性,为列表框添加变量,CListBox类的常用函数,3.2.7 组合框控件,组合框框控件的重要属性,为组合框添加变量,CComboBox类的常

7、用函数,3.2.8 IP地址框控件,CIPAddressCtrl类的常用函数,3.2.9 列表控件,列表控件的重要属性,为列表控件添加变量,CListCtrl类的常用函数,3.2.10 CImageList类,3.2.11 常用控件应用示例,【例3.2】设计一个MFC对话框,用于输入计算机的基本信息,其中包含上面介绍的一些常用控件,如图3.35所示。,例3.2的对话框中使用的控件及其对应的变量,1初始化对话框,在启动对话框时,执行OnInitDialog()函数,用于设置各控件的初始值,代码如下: BOOL CMfcNormalControlDlg:OnInitDialog() CDialog

8、:OnInitDialog(); / 选择设备类型为“计算机” m_DevType.SetCheck(1); / 添加可供选择的部门 m_Dept.InsertString(0, 人事部); m_Dept.InsertString(1, 财务部); m_Dept.InsertString(2, 销售部); / 默认选择人事部 m_Dept.SetCurSel(0); return TRUE; / 除非将焦点设置到控件,否则返回TRUE ,2添加设备,当用户单击“添加”按钮时,执行OnBnClickedButtonAdd()函数,代码如下: void CMfcNormalControlDlg:O

9、nBnClickedButtonAdd() / 检查数据有效性 UpdateData(TRUE); if(m_DevName = ) AfxMessageBox(请输入部门名称。); return; / IP地址 CString DevIP; m_DevIP.GetWindowTextA(DevIP);/ 获取CIPAddressCtrl控件的值 if(DevIP = 0.0.0.0) AfxMessageBox(请输入IP地址。); return; ,2添加设备,/ 是否登记 CString IsRegister = 否; if(m_Register) IsRegister = 是; / 部

10、门 CString DeptName; m_Dept.GetWindowTextA(DeptName);/ 获取组合框控件的值 / 设备类型 int iType = m_DevType.GetCheck();/ 获取单选按钮控件的值 CString DevType; switch(iType) case 1: DevType = 计算机; break; case 2: DevType = 服务器; break; case 3: DevType = 网络设备; break; case 4: DevType = 其他; break; char s1000; sprintf(s, 部门名称: %s;

11、 IP地址: %s; 所属部门: %s; 是否登记: %s; 设备类型: %s, m_DevName.GetBuffer(), DevIP.GetBuffer(), DeptName.GetBuffer(), IsRegister.GetBuffer(), DevType.GetBuffer(); / 添加到列表框中 m_DevList.InsertString(0, s); UpdateData(FALSE); ,3.3 在对话框中使用菜单,3.3.1 创建和设计菜单 3.3.2 在对话框中添加菜单 3.3.3 菜单项的消息处理函数,3.3.1 创建和设计菜单,打开资源管理器,右键单击“.rc”(例如,如果项目名为MfcApp,则右键单击MfcApp.rc项),在弹出菜单中选择“添加资源”,打开“添加资源”对话框,如图3.36所示。,菜单编辑器,在此处可以添加新菜单项,菜单项的属性,3.3.2 在对话框中添加菜单,打开对话框设计界面,在属性窗口的Menu选项中可以选择对话框中使用的菜单,如图3.38所示。运行项目,打开对话框,如图3.39所示。,3.3.3 菜单项的消息处理函数,菜单项包含下面两个重要的消息: COMMAND,当用户单击菜单时触发该消息,添加该菜单项的COMMAND消息处理函数就可以处理单击操作

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论