ImageVerifierCode 换一换
格式:DOCX , 页数:78 ,大小:212.35KB ,
资源ID:16385104      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16385104.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(对话框和常用控件Word文档下载推荐.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

对话框和常用控件Word文档下载推荐.docx

1、b) 双击IDR_MAINFRAMEc) 双击右边空白菜单,点开pop_up(让它是空白),在名字处写”弹出对话框(&A)”,ID处写ID_PUPDIALOG6)将菜单命令连接到主框架程序中,完成ID_PUPDIALOG的消息映射: ViewClassWizard保证Class name里是CMainFrame,在ObjectIDs里找到ID_PUPDIALOG点黑Messages里(右边)点COMMAND建立主框架对象方法并加代码:void CMainFrame:OnPupdialog() CMyDlg MyDlg;MyDlg.DoModal(); /DoModal()是CDialog类成员

2、函数,通过调用该/函数将显示对话框。 7)在CMainFrame.cpp文件里加: #include “MyDlg.h” / 之后运行。 例2:无模式对话框(为175页附加举例)非模式对话框,弹出后,可一直保留在屏幕上,用户可继续在应用中进行其它操作或启动其它应用程序,当需要使用对话框时,只需象激活一般窗口一样激活对话框即可。1)建一个SDI(单文档)应用程序2)创建对话框模板InsertResource点黑DialogNew拖过一个静态文本,鼠标对准它,按右键点properties改标题为“新建非模式对话框”。3)为对话框创建类点出对话框(IDD_DIALOG1缺省的ID号),双击对话框中的

3、任意位置,出现一个表,你点OK出现一个对话框,你写类名:CDlg保证基类为CDialog4)创建菜单打开工作区MenuIDR_MAINFRAME双击空白菜单写“非模式对话框”关闭再点下面空菜单写名字“显示非模式对话框”ID处写ID_DLG.5) 添加菜单命令消息 WiewClassWizardMessage Maps保证Class name里是Wiew类(视图类),在Object IDS里找到ID_DLG(菜单的ID)点黑右边COMMAND双击它OK6)a、你在Wiew.h里加:#include “Dlg.h” b、在public:里加:CDlg *dlg;/创建CDlg对象 c、在View.

4、cpp的OnDlg()函数里加: CMyView:OnDlg() dlg=new CDlg(this); dlg-Create(IDD_DIALOG1);/使对话框摸板从资源中创建一个非/模式对话框ShowWindow(SW_RESTORE);/显示对话框 4.1.1资源与资源标识 Visual C+6.0将Windows应用程序中经常用到的菜单、工具栏、对话框、图标等都视为“资源”,并将其单独存放在一个资源文件中。每个资源都由相应的标识符来区分,并且可以象变量一样进行赋值。1.资源的分类 建一个单文档应用程序“资源”,然后将项目工作区切换到“ResourceView”页面,展开所有的节点,如

5、书164页图4.1所示:一个单文档应用程序所使用的资源可分为以下几类:(1)快捷键列表(Accelerator):快捷键列表为一系列组合键的集合,被应用程序用于引发一个动作。该列表一般与菜单命令相关联,用于代替鼠标操作。(2)对话框(Dialog):为含有按钮、列表框、编辑框等各种控件的窗口。(3)图标(Icon):图标是代表应用程序显示在Windows桌面上的位图,它同时有32*32像素和16*16像素2种规格。(4)菜单(Menu):用户通过菜单可以完成应用程序的大部分操作。(5)字串表(String Table):是应用程序使用的全局字符串或其他标识符。(6)工具栏按钮(Toolbar)

6、:是由一系列具有相同尺寸的位图组成的,它通常与一些菜单命令相对应,用于提高用户的工作效率。(7)版本信息(Version):版本信息包含应用程序的版本、用户注册码等相关信息。 除了上述常用资源类别外,Visual C+6.0应用程序中还可有鼠标指针、HTML等,也可以自己添加新的资源类别。2.ID标识符 书164页图4.1中,可以看到每一个资源类别都有一个或多个相关资源,每一个资源均是由标识符来定义的。当添加或创建一个新的资源或资源对象时,系统会为其提供默认的名称,如:IDR_MAINFRAME等。当然,用户也可重新命名,但要按一定的规则来进行,这样便于在应用程序代码设计时理解和记忆。一般要遵

7、循下列规则:(1)在标识符名称中允许使用字母az、AZ、09以及下划线“_”。(2)标识符名称不区分大小写字母,如new_idd与New_Idd是相同的标识符。(3)不能以数字开头,如8BIT是不合法的标识符。除了上述规则外,出于习惯,Visual C+还提供了一些常用标识符定义的前缀,供用户使用(见165页表4.1)IDR_ 表示快捷键或菜单相关资源IDD_ 表示对话框资源IDC_ 表示光标资源或控件IDI_ 表示图标资源IDM_ 表示菜单项ID_ 表示命令项IDS_ 表示字符表中的字符串IDP_ 表示消息框中使用的字符串 每一个定义的标识符都保存在应用程序项目的Resource.h文件中,

8、它的取值范围为065535。在同一个程序项目中,资源标识符名称不能一样,不同的标识符的值也不能一样。*使用对话框编辑器(对话框编程)*4.1.2添加对话框资源:可建一个单文档应用程序名为“对话框编程”,在此程序中加入一个对话框:InsertResource点黑Dialognew *4.1.4添加和布局控件:拖入一些控件,对这些控件进行排序、布局、大小调整、上下对齐、测试等(见书170页图4.8所示 控件布局工具栏) *最后在对话框IDD_DIALOG1上留一个按钮控件,其ID标识符为:IDC_BUTTON1。可按书171页最上的4、测试一下对话框。*识别控件工具栏(168页)控件工具栏及各按钮

9、含义:(168页)1)控件的选择2)静态文本3)组框4)复选框5)组合框6)水平滚动条7)旋转按钮8)滑动条9)列表视图10)标签11)复合编辑12)月历13)用户定制工具14)静态图片15)编辑框16)按钮17)单选框18)列表框19)垂直滚动条20)进展条21)热键22)树形视图23)动画24)日期选择25)IP地址26)组合框的扩展(从左边往下数,再从右边往下数)*对话框资源类别:在加对话框时,InsertResource点开+Dialog见有7类对话框,分别了解其不同用途(见166页)4.1.3设置对话框的属性A、ViewProperties B、按Alt+Enter C、用鼠标右键单

10、击对话框模板Properties都能弹出对话框的属性框,见书167页对属性General的解释。General(一般属性)、Styles(风格)、More Styles(更多风格)、Extended Styles(扩展风格)、More Extended Styles(更多扩展风格)等部分。下面介绍常用的General属性:ID框 修改或选择对话框的标识符名称(如改成:IDD_MYDIALOG)Caption(标题栏) 输入对话框的标题名称,中英文均可(我的对话框)Font字体按钮 单击此按钮可选择字体的种类(宋体)以及字体的大小(如:9号字) (设置成:宋体 大小为:9)Xpos/Ypos 对

11、话框左上角在父窗口中的X、Y坐标,都为0时表示居中菜单框Menu 默认值为无,当对话框需要菜单时,输入或选择指定的菜单资源Class name 默认值为无,它提供C/C+语言编程时所需要的对话框类名,对MFC类库的资源文件来说,该项不被激活*为对话框添加类(171页) 对准对话框的任意非控件区域双击鼠标,将弹出书171页图4.12所示的对话框,询问是否为对话框资源创建一个新类单击OK弹出书172页图4.13所示的对话框你定义一个新类的名字如:CMyDlg(注意:类名必须以C打头),下面的基类Base class和ID标识符Dialog ID内容一般不改。* 添映射消息 ViewClassWiz

12、ard出现“MFC ClassWizard”对话框在Class name处选择CMyDlg 在Object IDs里选定点黑IDC_BUTTON1单击BN_CLICKED消息Add FunctionOKEdit Code (到MyDlg.cpp文件中)*添加用户代码接上,在MyDlg.cpp文件中,写:void CMyDlg:OnButton1() MessageBox(“欢迎进入对话框的设计!”);/这时运行还不见对话框,接下*在程序中调用对话框(173页) 由于对话框的代码是以类为模块来设计的,使用时需要在程序中加入该类的头文件,并定义一个类对象,然后就可以使用该类的相关成员。项目工作区F

13、ileView打开应用程序的.cpp文件,在前面加: #include “MyDlg.h”在InitInstance函数体中的return TRUE语句之前添加下列代码: CMyDlg dlg; dlg.DoModal();/DoModal()函数是负责对话框的显示和终止。运行!则直接显示出对话框,单击按钮则出现“欢迎进入对话框的设计”的字样。本例建的CMyDlg类及以后在各个项目中建立的类,在文档、视图、主框架类中都可同样使用。*控件的删除、复制和布局 当单个控件或多个控件被选取后,按方向键或用鼠标拖动控件的选择框可移动控件。若在鼠标拖动过程中还按住Ctrl键则复制控件。若按Del键可将选取

14、的控件删除。*主控件(多个控件以其为主)的设置方法是按住Ctrl键或Shift键,然后用鼠标单击所要指定的控件即可。*网格、标尺等辅助工具,见书170页图4.8(及表4.4)所示及说明*测试对话框,见书171页最上面的说明书上172页“添加对话框代码”的过程是:1)为该项目添加一个对话框2)为这个对话框加类,类名为:CMyDlg3)在对话框上加一个静态控件Static,将其ID改为IDC_STATIC_1,并拉的较长些4)在CMyDlg类中,加WM_INITDIALOG映射消息,并加下列代码:CStatic *pWnd=(CStatic*)GetDlgItem(IDC_STATIC_1); p

15、Wnd-SetWindowText(欢迎你进入对话框的设计! );5)也要在应用程序的执行文件(文件名.cpp)前面加:#include MyDlg.h4)也要在应用程序的执行文件(文件名.cpp)return前面加:CMyDlg dlg;这时才能在Static控件上就显示字样。 代码中,CStatic是静态文本控件的MFC类,SetWindowText是CWnd的一个成员函数,用于设置窗口的文本内容。由于控件类是CWnd的子类(派生类),因此可以使用基类的SetWindowText来改变静态文本控件显示的内容。GetDlgItem也是CWnd类的一个成员函数,用于获得对话框中控件(参数是控件

16、的ID标识符,这里是IDC_STATIC_1)的窗口指针。 在这里,如果我们象在模式对话框和非模式对话框中,直接在静态控件的属性里写,那就简单多了,故这种做法不提倡。4.2控件的创建和使用方法(177页) 控件是在系统内部定义的能够完成特定功能的控制程序单元。在应用程序中使用控件不仅简化了编程,还能完成常用的各种功能。为了更好地发挥控件的作用,用户还必须理解和掌握控件的属性、消息以及创建和使用方法。4.2.1控件的创建方法控件的创建方法有2种:(1)是在对话框摸板中用编辑器指定控件,也就是说,将控件的父窗口指定为对话框,如:上面的BUTTON1按钮控件。(2)是将控件看做任意一窗口的子窗口,并

17、通过调用相应的Create函数来创建。下面我们用第2种方法创建控件(此方法涉及到的编程内容比较复杂,且不能发挥对话框编辑器可视化的优点,故不提倡此种方法,而提倡第一种方法即在对话框模板中用编辑器指定控件)。(1)打开上个项目,在CMyDlg类的头文件MyDlg.h里添加一个按钮类CButton的指针变量:(public:里) CButton *m_btnWnd;(2)按Ctrl+W或ViewClassWizard打开MFClassWizard对话框,并切换到Message Maps页面,在Object IDs列表中选定点黑CMyDlg项,并在Message列表中找到WM_INITDIALOG消

18、息点黑AddFunctionEditCode(上例中已经做了此步)(3)添加代码:BOOL CMyDlg:OnInitDialog() - m_btnWnd=new CButton();/构造按钮控件/下面“”按钮上的字,创建子窗口|窗口最初是可见的|创建的是按键按钮 m_btnWnd-Create(“你好”,WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, CRect(20,20,120,60),this,201);/创建 CFont *font=this-GetFont();/获取对话框的字体SetFont(font);/设置控件字体 return TRUE;/(程序原

19、有的)(4)编译并运行,结果见书179页图4.26所示。由于OnInitDialog函数在对话框初始化时被调用,因此将对话框中的一些初始化代码都添加在此函数中。代码中,Create用来创建一个按钮控件,该函数的第一个参数用来指定该按钮的标题,第二个参数用来指定控件的风格,第三个参数用来指定它在父窗口中的位置和大小,第四个参数用来指定父窗口指针,最后一个参数是指定该控件的标识值。Create函数的参数中,WS_CHILD、WS_VISIBLE和BS_PUSHBUTTON都是Visual C+6.0系统内部定义的标识符,可以直接引用,由于按钮是作为对话框的一个子窗口来创建的,因此其风格必须有WS_

20、CHILD(子窗口风格)。WS_CHILD表示按钮是作为对话框的一个子窗口来创建的。WS_VISIBLE是使控件可见。BS_PUSHBUTTON表示创建的是按键按钮。书上178页的“使用控件的编程方式来创建一个按钮”是建一个对话框的应用程序完成的。过程如下:1) 建一个基于对话框的应用程序,名为:创建控件打开VC系统FileNewMFC AppWizard(exe)Location处写路径名Project name处写文件名:创建控件OK选中Dialog basedFinish这样就建了一个基于对话框的应用程序。2) 将项目工作区切换到ClassView页面,并展开CMyDlg类右键对准CMy

21、Dlg单击鼠标便弹出如书178页图4.24的快捷菜单从快捷菜单中选择Add Member Variable(添加成员变量),在出现的对话框中定义一个CButton类对象m_btnWnd(在Variable Type处写:CButton 在Variable Name处写:m_btnWnd)(通常以”m_”作为变量的开头,表示”成员”的意思。如书179页图4.25所示。3) 还是在ClassView页面中,再双击OnInitDialog函数名,在右侧便出现这个函数,你在它的return TRUE;前面加如下代码: m_btnWnd.Create(你好,WS_CHILD|WS_VISIBLE|BS_

22、PUSHBUTTON, CRect(20,20,120,60),this,201);/创建控件 m_btnWnd.SetFont(font);4.2.2控件的消息及消息映射 当控件的状态发生改变时,控件旧会向其父窗口发送消息,这个消息称为“通知消息”。对于每个消息,系统都会用一个MSG结构来记录。MSG具有下列结构:Typedef struct tagMSG HWND hwnd; /接收到消息的窗口句柄 注意:前面的数据类型见/145146页,窗口句柄 UINT message; /消息,32位无符号整数 WPARAM wParam; /消息的附加信息,它的含义取决于message /当做参数

23、传递给窗口过程或回调函数的32位值 LPARAM lParam; /作为参数传递给窗口过程或回调函数的32位值 DWORD time; /消息传送时的时间 /32位无符号整数,段地址和相关的偏移地址 POINT pt; /消息传送时,光标所在的屏幕坐标。POINT点是类MSG;对于一般控件来说,其通知消息通常是一条WM_COMMAND消息,这条消息的wParam参数的低位字中含有控件标识符,wParam参数的高位字则为通知代码,lParam参数则是指向控件的句柄。而对于有些控件,其通知消息通常是一条WM_NOTIFY消息,这条消息的wParam参数是发送通知消息的控件的标识副符,而lParam

24、参数则是指向一个结构指针。不管是什么控件消息,一般都可以用MFC ClassWizard对它们加以映射。1、映射控件消息A、建一个基于对话框的应用程序(或用上一个程序),名为:映射控件消息B、将项目工作区窗口切换到ResourseView页面,打开Dialog,双击IDD_MY_DIALOGC、删除上面的一个原有控件“TODO.”,添加一个按钮控件(Button),保留其默认属性如书180页图4.27所示。D、ViewClassWizard保证Class name处是CMyDlg在IDs列表中选择IDC_BUTTON1(这是添加按钮后,系统自动为这个按钮设置的标识符)在Messages框中选择

25、BN_CLICKED消息单击”Add Function”按钮或双击BN_CLICKED消息,出现”Add Member Function”对话框,在这里可以输入成员函数的名称,系统默认的函数名为OnButton1,如书181页图4.28所示。说明:(1)不同资源对象(控件、菜单等命令)所产生的消息是不相同的。例如,按钮控件IDC_BUTTON1的消息有2个:BN_CLICKED和BN_DOUBLECLICKED,分别表示当用户单击或双击该按钮时产生的消息。 (2)一般不需要对对话框中的“OK”(确定)和”Cancel”(取消)进行消息映射,系统已自动设置了这2个按钮的动作,当用户单击这2个按钮

26、都将自动关闭对话框,而“OK”按钮动作还使得对话框数据有效。E、单击“OK”按钮,在MFC ClassWizard的”Member functions”列表中将列出新增加的成员函数,选择此函数,单击“Edit Code”按钮(或直接在函数名双击鼠标),开发环境的文档窗口中将自动打开该函数所在的源代码文件,并定位到该函数的实现代码处。在此成员函数中添加下列代码:OnButton1() / TODO: Add your control notification handler code here MessageBox(你按下了Button1按钮!2、映射控件通用消息 上述过程是映射一个控件的某一个

27、消息,事实上也可以通过WM_COMMAND消息的映射来处理一个或多个控件的通用消息,步骤如下:A、打开“MFC ClassWizard”对话框,在“Class name”列表中选择CMyDlg,在IDs列表中也选择CMyDlg,在Messages框中找到OnCommand双击(或点Edit Code),这样在CMyDlg类中就添好了OnCommand消息函数,如书182页图4.29所示。由于OnCommand函数是一个用于处理WM_COMMAND消息的虚函数,因此这里添加的OnCommand函数事实上是一个在类中实际调用的函数,可称为“实例函数”。这样的映射操作,可以称之为“对虚函数OnCommand的重载”。B、在OnCommand函数中添加下列代码:OnCommand(WPARAM wParam, LPARAM lParam) Add your specialized code here and/or call the base class WORD nCode=HIWORD(wParam);/用于获取32位数值中的高位(146页) WORD nID=LOWORD(wParam);/用于获取32位数值中的低位,控件的ID值 if(nID=201)&(nCode=BN_CLICKED)你好 if(nID=IDC_BUTTON1)&(nCode=BN_CLICKED

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1