欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第2章 对话框.ppt

    • 资源ID:70379031       资源大小:2.13MB        全文页数:41页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第2章 对话框.ppt

    2.1创建对话框创建对话框 2.2 2.3设计对话框设计对话框使用对话框使用对话框2.1.1 创建对话框应用程序创建对话框应用程序用MFC AppWizard(MFC应用程序向导)可以非常方便地创建一个基于对话框的应用程序,如下面的过程:在“E:Visual C+程序”文件夹中,创建本章应用程序工作文件夹“第2章”。启动Visual C+6.0,选择“文件”“新建”菜单,在弹出的“新建”对话框的工程标签页面中,选择MFC AppWizard(exe)的项目类型。步骤1,单击“确定”按钮进入下一步,从弹出的“步骤1”对话框中,选择“基本对话框”应用程序类型。步骤2,单击“下一步”按钮,出现如图2.2所示的对话框,从中可选择设置对话框的风格以及ActiveX控件、Windows Sockets网络等的支持。步骤3,单击“下一步”按钮,出现如图2.3所示的对话框,从中除了窗口风格是MFC标准风格外,还可有两个方面的选择:一是在源文件中是否加入注释用来引导程序代码的编写,另一个是使用动态链接库还是静态链接库。步骤4,保留默认选项,单击 按钮,出现如图2.4所示的对话框,在这里,可以对MFC AppWizard提供的默认类名、基类名、各个源文件名进行修改。单击编译工具栏中的“运行工具”按钮或按快捷键Ctrl+F5,系统开始编译、连接并运行生成的对话框应用程序可执行文件Ex_Dlg.exe,运行结果如图2.5所示。1.创建创建默认的单文档应用程序默认的单文档应用程序 启动Visual C+6.0,选择“文件”“新建”菜单,在弹出的“新建”对话框的工程标签页面中,选择MFC AppWizard(exe)的项目类型。在工程编辑框中输入单文档应用程序名Ex_SDI。单击“确定”按钮进入下一步,从弹出的“步骤1”对话框中,选择“单文档”应用程序类型。单击“完成”按钮,出现一个信息对话框,显示出用户在前面几个步骤中做出的选择,单击“确定”按钮,系统开始创建,并又回到了Visual C+6.0的主界面。2.资源资源和资源标识和资源标识Visual C+6.0将Windows应用程序中经常用到的菜单、工具栏、对话框、图标等都视为“资源”,并将其单独存放在一个资源文件中。每个资源都有相应的标识符来表示区分,并且可以像变量一样进行赋值。将项目工作区切换到“ResourceView”页面,展开所有节点,如图2.6所示。资源类别资源标识符3.添加添加对话框资源对话框资源选择“插入”“资源”菜单,或按快捷键Ctrl+R打开“插入资源”对话框,在对话框中可以看到资源列表中存在Dialog项,若单击Dialog项左边的“+”号,将展开对话框资源的不同类型选项,如图2.7所示。表2.1列出各种类型的对话框资源的不同用途。类类 型型说说 明明IDD_DIALOGBAR对话条,往往和工具条停放一起IDD_FORMVIEW一个表单(一种样式的对话框),用于表单视图类的资源模板IDD_OLE_PROPPAGE_LARGE一个大的OLE属性页IDD_OLE_PROPPAGE_SMALL一个小的OLE属性页IDD_ PROPPAGE_LARGE一个大属性页,用于属性对话框IDD_ PROPPAGE_MEDIUM一个中等大小的属性页,用于属性对话框IDD_ PROPPAGE_SMALL一个小的属性页,用于属性对话框对展开的不同类型的对话框资源不作任何选择,选中“Dialog”,单击 按钮,系统就会自动为当前应用程序添加了一个对话框资源,并出现如图2.8所示的界面。对话框模板控件工具栏布局工具栏默认标识符对话框编辑器4.创建创建对话框类对话框类在对话框资源模板的空白区域(没有其他元素或控件)内双击鼠标左键,将弹出如图2.9所示的对话框。单击OK按钮,出现如图2.10所示的“New Class”(新类)对话框。2.2.1 设置对话框属性设置对话框属性在对话框模板的空白处右击鼠标,从弹出的快捷菜单中选择“属性”菜单项,出现如图2.11所示的对话框属性窗口。对话框具有这几类属性:常规(General)、样式(Styles)、更多样式(More Styles)扩展样式(Extended Styles)、更多扩展More Extended Styles(更多扩展样式)等部分,这里仅介绍最常用的常规(General)属性,如表2.2所示。项项 目目说说 明明ID框修改或选择对话框的标识符名称标题框输入对话框的标题名称,中英文均可,如“我的对话框”字体按钮单击此按钮可选择字体的种类(如宋体)及尺寸(如9号)位置X/位置Y对话框左上角在父窗口中的X、Y坐标,都为0时表示居中菜单框默认值为无,当对话框需要菜单时输入或选择指定的菜单资源类名称框默认值为无,它提供C/C+语言编程时所需要的对话框类名,对MFC类库的资源文件来说,该项不被激活。1.控件控件的添加的添加利用“控件”工具栏中的各个按钮可以顺利完成控件的添加。图2.12说明了各个按钮所对应的控件类型。控件的选择控件的选择静态文本静态文本组框组框复选框复选框组合框组合框水平滚动条水平滚动条旋转按钮旋转按钮滑动条滑动条列表视图列表视图标签标签复合编辑复合编辑月历月历用户定制控件用户定制控件静态图片静态图片编辑框编辑框按钮按钮单选框单选框列表框列表框垂直滚动条垂直滚动条进展条进展条热键热键树形视图树形视图动画动画日期选择日期选择IP地址地址扩展组合框扩展组合框2.控件控件的选取的选取控件的删除、复制和布局操作一般都要先选取控件,若选取单个控件,则可以下列方法:l用鼠标直接选取。l用助记符来选取。l用Tab键选取。对于多个控件的选取,可采用下列方法:l先在对话框内按住鼠标左键不放,拖出一个大的虚框,然后释放鼠标,则被该虚框所包围的控件都将被选取。l先按住Shift键不放,然后用鼠标选取控件,直到所需要的多个控件选取之后再释放Shift键。若在选取时,对已选取的控件再选取一下,则取消该控件选取。3.控件控件的删除、复制和布局的删除、复制和布局当单个控件或多个控件被选取后,按方向键或用鼠标拖动控件的选择框可移动控件。若在鼠标拖动过程中还按住Ctrl键则复制控件。对于控件的布局,对话框编辑器中提供了控件布局工具栏,如图2.14所示,它可以自动地排列对话框内的控件,并能改变控件的大小。4.测试测试对话框对话框“布局”菜单下的“测试”命令或布局工具栏上的测试按钮 是用来模拟所编辑的对话框的运行情况,帮助用户检验对话框是否符合用户的设计要求以及控件功能是否有效等。5.操作操作示例示例下面来向对话框添加三个静态文本控件(一个静态文本控件就是一个文本标签):在控件工具栏上,单击 按钮,然后在对话框模板左上角单击鼠标左键不放,拖动鼠标至满意位置,释放鼠标键。这样,第一个静态文本控件添加到对话框中了。单击布局工具栏上的 按钮,打开对话框模板的网格。在控件工具栏上,将 按钮拖放到对话框模板中的左中部。这样,第二个静态文本控件添加到对话框中了。同样的操作,将第三个静态文本控件拖放到对话框模板中的左下部。按住Shift键不放,依次单击刚才添加的三个静态文本控件,结果如图2.15所示。在布局工具栏上,依次单击“大小相同”按钮 、“靠左对齐”按钮 、“上下间隔相等”按钮 ,结果如图2.16所示。1.组组框框“组框”(Group Box)是一种静态控件,它使用具有刻蚀效果的矩形框线来细分对话框界面,其常规(General)属性如图2.17所示。在对话框模板的“网格”方式下,多个组框重叠后可构成形式多样的单元格,如图2.18所示。2.刻蚀刻蚀线线当对话框界面无需太多的细分时,常使用一条水平和竖直的刻蚀线来分隔。此时,就需要使用“图片”(Picture)控件来构成。与“组框”控件相似,“图片”(Picture)控件也属于静态控件,其常规(General)属性如图2.19所示。在前面创建的Ex_Dlg应用程序项目中,Visual C+自动为其添加了WM_INITDIALOG消息的映射函数OnInitDialog,并添加了一系列的初始化代码:BOOL CEx_DlgDlg:OnInitDialog()CDialog:OnInitDialog();return TRUE;/return TRUE unless you set the focus to a control下面以单文档应用程序Ex_SDI添加的COneDlg对话框为例说明该的映射过程:按【Ctrl+W】快捷键,弹出MFC ClassWizard对话框,将其切换到“Message Maps”标签页面。在Class name组合框中,将类名选定为COneDlg(图2.20中的标记1);在Object IDs列表框中选定COneDlg(图2.20中的标记2),然后拖动Messages列表框右侧的滚动块,直到出现要映射的WM_INITDIALOG消息为止(图2.20中的标记3),结果如图2.20所示。双击Messages列表中的WM_INITDIALOG消息或单击Add Function按钮,都会在CEx_SDIView类中添加该消息的映射函数OnLButtonDown,同时在Member funcions列表中显示这一消息映射函数和被映射的消息。双击消息函数,即图2.21中的标记1或单击Edit Code按钮,MFC ClassWizard对话框退出,并转向文档窗口,定位到COneDlg:OnInitDialog函数实现的源代码处,从中可添加一些初始化代码。2.3.1 在程序中使用在程序中使用将项目工作区窗口切换到“ResourceView”页面,展开所有节点,双击资源“Menu”项中的IDR_MAINFRAME,将打开菜单编辑器,相应的Ex_SDI项目的菜单资源被显示出来,在菜单的最后一项,留出了一个菜单项的空位置,用来输入新的菜单项,如图2.22所示。菜单的空位置菜单的空位置在菜单的空位置上双击鼠标左键,则出现它的属性对话框,在标题框中输入“对话框(&D)”,结果如图2.23所示,子菜单的空位置子菜单的空位置单击“对话框”菜单项下方的空位置,在属性对话框中,输入标题“第一个对话框(&F)”,在ID框输入该菜单项的资源标识:ID_DLG_FIRST,结果如图2.24所示,单击属性对话框右上角的关闭按钮。表2.3列出菜单属性对话框“常规(General)”的各项含义。项项 目目含含 义义ID菜单的资源ID号标题(Caption)用来标识菜单项显示文本。助记符字母的前面须有一个&符号,这个字母与Alt构成组合键。分隔符(Separator)选中时,菜单项是一个分隔符或是一条水平线已复选(Checked)选中时,菜单项文本前显示一个选中标记弹出(Pop_up)选中时,菜单项含有一个弹出式子菜单已变灰(Grayed)选中时,菜单项显示是灰色的,用户不能选用非活动(Inactive)选中时,菜单项没有被激活,用户不能选用帮助(Help)选中时,菜单项在程序运行时被放在顶层菜单的最右端中断(Break)当为Column时,对于顶层菜单上的菜单项来说,被放置在另外一行上,而对于弹出式子菜单的菜单项来说,则被放置在另外一列上;当为Bar时,与Column相同,只不过对于弹出式子菜单来说,它还在新列与原来的列之间增加一条竖直线;注意这些效果只能在程序运行后才能看到。提示(Prompt)用来指明光标移至该菜单项时在状态栏上显示的提示信息用鼠标将新添加的菜单项拖放到“查看”和“帮助”菜单项之间,如图2.25所示。按【Ctrl+W】快捷键,弹出MFC ClassWizard对话框,该对话框将自动切换到Message Maps页面。从“Class name”组合框中选择CEx_SDIView,在Object IDs列表中选中ID_DLG_FIRST,然后在Messages框中选中并双击COMMAND消息。出现“Add Member Function”对话框,从中可以输入函数名称,系统默认的函数名为OnDlgFirst,如图2.26所示。在MFC ClassWizard的“Member functions”列表中,选择消息函数OnDlgFirst,如图2.27所示,双击或单击 Edit Code按钮,MFC ClassWizard对话框退出,并转向文档窗口,定位到CEx_SDIView:OnDlgFirst函数实现的源代码处,添加下列代码:void CEx_SDIView:OnDlgFirst()/COneDlg dlg;dlg.DoModal();在CEx_SDIView类的实现文件Ex_SDIView.cpp的前面,即将刚才添加代码的文档窗口滚动到最前面,添加COneDlg类的头文件包含,即:#include stdafx.h/#include Ex_SDIView.h#include OneDlg.h编译并运行。在应用程序菜单上,选择“对话框”“第一个对话框”菜单项,将出现如图2.28的对话框。要求获取对话框中用户操作的内容,则还应判断DoModal的返回值,即如下面的代码:int nRet=dlg.DoModal();/Handle the return value from DoModalswitch(nRet)case-1:AfxMessageBox(Dialog box could not be created!);break;case IDOK:/Do something break;case IDCANCEL:/Do something break;default:/Do something break;或简单的使用下列代码框架:if(IDOK=dlg.DoModal()/Do somethingMFC对这些通用对话框所构造的类都是从一个公共的基类CCommonDialog派生而来。表2.4列出了这些通用对话框类。对话框对话框用用 途途CColorDialog颜色对话框,允许用户选择或创建颜色CFileDialog文件对话框,允许用户打开或保存一个文件CFindReplaceDialog查找替换对话框,允许用户查找或替换指定字符串CPageSetupDialog页面设置对话框,允许用户设置页面参数CFontDialog字体对话框,允许用户从列出的可用字体中选择一种字体CPrintDialog打印对话框,允许用户设置打印机的参数及打印文档用户可以在程序中直接使用这些通用对话框,例如下面的代码是测试在上述示例中的OnDlgFirst中,运行后在应用程序的菜单上,选择“对话框”“第一个对话框”菜单项,将弹出如图2.29所示的对话框。选定一个文件后,单击“打开”按钮,就会弹出一个消息对话框,显示该文件的全路径名称。void CMainFrame:OnTestDlg()CString filter;filter=文本文件(*.txt)|*.txt|C+文件(*.h,*.cpp)|*.h;*.cpp|;CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,filter);if(dlg.DoModal()=IDOK)CString str;str=dlg.GetPathName();AfxMessageBox(str);在Visual C+6.0的MFC类库中就提供相应的函数实现这样的功能,使用时,直接在程序中调用它们即可。它们的函数原型如下:int AfxMessageBox(LPCTSTR lpszText,UINT nType=MB_OK,UINT nIDHelp=0);int MessageBox(LPCTSTR lpszText,LPCTSTR lpszCaption=NULL,UINT nType=MB_OK);这些类型是用MFC预先定义的一些标识符来指定的,例如MB_ICONSTOP、MB_YESNOCANCEL等,具体见表2.5和2.6。图标类型图标类型含含 义义MB_ICONHAND、MB_ICONSTOP、MB_ICONERROR用来表示MB_ICONQUESTION用来表示MB_ICONEXCLAMATION、MB_ICONWARNING 用来表示MB_ICONASTERISK、MB_ICONINFORMATION用来表示按钮类型按钮类型含含 义义MB_ABOUTRETRYIGNORE表示含有“关于”、“重试”、“忽略”按钮MB_OK表示含有“确定”按钮MB_OKCANCEL表示含有“确定”、“取消”按钮MB_RETRYCACEL表示含有“重试”、“取消”按钮MB_YESNO表示含有“是”、“否”按钮MB_YESNOCANCEL表示含有“是”、“否”、“取消”按钮在使用消息对话框时,图标类型和按钮类型的标识可使用按位或运算符“|”来组合,例如下面的代码框架中,MessageBox将产生如图2.30所示的结果。int nChoice=MessageBox(你喜欢Visual C+吗?,提问,MB_OKCANCEL|MB_ICONQUESTION);if(nChoice=IDYES)/.

    注意事项

    本文(第2章 对话框.ppt)为本站会员(hyn****60)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开