第2章MFC应用程序课件.ppt

上传人:小飞机 文档编号:2154605 上传时间:2023-01-20 格式:PPT 页数:88 大小:930KB
返回 下载 相关 举报
第2章MFC应用程序课件.ppt_第1页
第1页 / 共88页
第2章MFC应用程序课件.ppt_第2页
第2页 / 共88页
第2章MFC应用程序课件.ppt_第3页
第3页 / 共88页
第2章MFC应用程序课件.ppt_第4页
第4页 / 共88页
第2章MFC应用程序课件.ppt_第5页
第5页 / 共88页
点击查看更多>>
资源描述

《第2章MFC应用程序课件.ppt》由会员分享,可在线阅读,更多相关《第2章MFC应用程序课件.ppt(88页珍藏版)》请在三一办公上搜索。

1、主要内容,2.1用MFC向导生成应用程序2.2 应用程序框架分析2.3 文档与视图2.4 工具栏和状态栏2.5-2.7MFC新功能2.8 应用程序框架类对象分析,2.1 用MFC向导生成应用程序,用AppWizard应用程序向导生成MFC应用程序。单文档应用程序多文档应用程序对话框应用程序用ClassWizard工具生成派生类、定义处理消息、管理对话框、定制MFC成员函数。,2.1 用MFC向导生成应用程序,演示MFC向导生成常用的三种应用程序。,2.1.2 生成的应用程序类型,基于对话框的应用程序CWinApp、CDialog类,2.1.2 生成的应用程序类型,单文档应用程序CWinApp、

2、CFrameWnd、CView、CDocument,2.1.2 生成的应用程序类型,多文档应用程序CWinApp、CMDIFrameWnd、CMDIChildWnd、CView、CDocument,2.1.3 向导生成工程文件简介,头文件与实现文件 各个类的*.h和*.cppResource.h:定义工程中所有资源标识符,给资源ID分配一个整数值。StdAfx.h和StdAfx.cpp:用于建立一个预编译的头文件。资源文件*.rc和*.rc2:是程序所使用的所有Windows资源的列表。*.ico:应用程序的图标所使用的图标文件。*Doc.ico:应用程序的文档图标文件。文档图标一般显示在多文

3、档程序界面上。Toolbar.bmp:工具栏按钮的位图文件。,2.1.3 向导生成工程文件简介,解决方案文件和工程文件*.sln:保存当前解决方案所包含的工程的信息。*.vcxproj:包含当前工程的设置、工程中的文件等信息。,MFC应用程序框架结构类的继承关系:,2.2 应用程序框架分析,2.2.1 框架简介,1.CObject类 CObject是MFC类库的根类,它几乎描述了所有MFC类的一些公共特性,并且给所有由它派生出的类提供了3种重要特性,即:串行化支持、运行时类信息支持以及诊断和调试支持。2.CCmdTarget类 命令类CCmdTarget是CObject的子类,它是MFC库中所

4、有具有消息映射属性的类的公共基类。从CCmdTarget派生的类能在程序运行时动态创建对象和处理命令消息。,3.CWinApp类,应用程序类在类族中的位置,WinMain函数的函数体的封装,支持线程管理,2.2.1 框架简介,应用程序类CWinApp是CWinThread的子类,封装了初始化、运行、终止应用程序的代码。可以由此派生自己的应用类。,指向框架窗口的指针m_pMainWnd,2.2.1 框架简介,CWinApp类中定义了三个可以重写的虚函数:InitInstance()-程序创建和显示窗口。程序设计时,必须以CWinApp类为基类派生自己的应用程序类,并根据情况重写InitInsta

5、nce()。Run(),处理消息循环。ExitInstance()程序结束时做收尾工作。,2.2.1 框架简介,4.文档模板类CDocTemplate,单一的文档指针,2.2.1 框架简介,文档类链表,查阅CPtrList类,2.2.1 框架简介,RUNTIME_CLASS分别创建了doc、view和窗口框架类的对象,2.2.1 框架简介,5.CFrameWnd类 CFrameWnd类是CWnd类的派生类。它是所有其他框架窗口类的基类,主要用来管理一个窗口。CFrameWnd类的对象是一个框架窗口,包括边框、标题栏、菜单、最大化按钮、最小化按钮和一个激活的视图。CFrameWnd类支持单文档界

6、面,对于多文档界面,使用它的两个派生类CMDIFrameWnd和CMDIChildWnd。CMDIFrameWnd类用于MDI的主窗口,CMDIChildWnd类用于MDI的子窗口。,2.2.1 框架简介,6.CView类 视图类CView是CWnd类的子类。视图类及其派生类用于管理框架窗口的客户区。7.CDocument类 文档类CDocument负责装载和维护文档。文档包括应用程序的工作成果或环境设置数据等,可以是程序需要保存的任何内容。,2.2.1 框架简介,为应用程序框架提供客户区,承担用户数据的显示(同时替代窗口框架接收外界的输入。因此,该类是程序员编码最多的地方。,派生关系,与文档

7、类的联系纽带,用户区的绘制,注意:谁来触发1)自动重绘;2)手动视图更新,2.2.1 框架简介,应用程序的文档类由CDocument派生,Serialize()函数:文件操作时响应 Read data from file Write data to file,序列化/串行化Serialization,2.2.1 框架简介,各对象之间的关系,2.2.1 框架简介,CWinApp theApp;,theApp.InitInstance,1.应用程序各对象的创建顺序,2.2.2 MFC应用程序运行流程,2.2.2 MFC应用程序运行流程,2.应用程序的执行过程启动:创建应用程序对象theApp、调用

8、应用程序类的构造函数初始化对象theApp。应用程序框架调用MFC提供的AfxWinMain()主函数。AfxWinMain()主函数,首先通过调用全局函数AfxGetApp()来获取theApp的指针pApp;然后通过该指针调用theApp的成员函数InitInstance()来初始化应用程序。,在应用程序的初始化过程InitInstance中,同时还构造了文档模板,产生最初的文档、视图和主框架窗口,并生成工具栏和状态栏。,2.2.2 MFC应用程序运行流程,当InitInstance()函数执行完毕后,AfxWinMain()函数将调用成员函数Run(),进入消息处理循环;函数Run()收

9、到WM_QUIT消息。MFC首先调用CWinApp类的成员函数ExitInstance();然后调用静态对象的析构函数;退出应用程序,将控制权交给操作系统。,WinMain-AfxWinMain,应用程序初始化,消息循环,C:Program FilesMicrosoft Visual Studio 10.0vcatlmfcsrcwinmain.cpp,2.2.2 MFC应用程序运行流程,2.2.3 应用程序窗口,重叠窗口弹出窗口子窗口,Windows消息主要有3种类型:标准Windows消息、控件消息和命令消息。1)标准Windows消息除WM_COMMAND以外,所有以“WM_”为前缀的消息

10、都是标准Windows消息;由窗口类或视图类处理;都有默认的处理函数,它们在CWnd类中进行了预定义。,1.消息的类别及其描述,2.2.4 消息机制与消息循环,标准的Windows消息又分为3类:键盘消息、鼠标消息和窗口消息。(1)键盘消息 键盘消息与键盘某个键的动作相关联。常见的键盘消息有以下几种。WM_KEYDOWN、WM_KEYUP:按下、释放键产生的消息。WM_CHAR:输入字符时产生的消息。,2.2.4 消息机制与消息循环,(2)鼠标消息 鼠标消息涉及到鼠标的单击、双击、拖动等。常用的鼠标消息有以下几种。WM_MOUSEMOVE:鼠标移动时产生的消息。WM_RBUTTONDOWN:鼠

11、标右键按下时产生的消息。WM_LBUTTONDOWN:鼠标左键按下时产生的消息。WM_LBUTTONDBLCLICK:鼠标双击时产生的消息。,2.2.4 消息机制与消息循环,(3)窗口消息 窗口消息一般与创建窗口、绘制窗口、移动窗口和销毁窗口等动作有关。在MFC应用程序中,窗口消息是由视图类、窗口类及它们的派生类处理的。,2.2.4 消息机制与消息循环,2).控件消息 控件消息是指控件或其他子窗口向父窗口发送的消息。与其他标准的Windows消息一样,控件消息也应该在视图类、窗口类中进行处理。但是,如果用户单击按钮控件时,发出的控件通知消息BN_CLICKED将作为命令消息来处理。,2.2.4

12、 消息机制与消息循环,3).命令消息 命令消息是由菜单项、工具栏按钮、快捷键等用户界面对象发出的WM_COMMAND消息。命令消息与其他消息不同,它可被更广泛的对象如文档、文档模板、应用程序对象、窗口和视图等处理。,2.MFC消息映射机制,MFC采用消息映射来处理消息;消息映射机制包括一组消息映射宏,用于把一个Windows消息和其消息处理函数联系起来。所有从CCmdTarget类派生出来的类都能够拥有自己的消息映射。与MFC消息映射机制有关的宏有以下3个:DECLARE_MESSAGE_MAP()BEGIN_MESSAGE_MAP(MyClass,MybaseClass)END_MESSAG

13、E_MAP(),2.2.4 消息机制与消息循环,为了使用消息映射宏:首先在类定义的结尾用DECLARE_MESSAGE_MAP()宏来声明使用消息映射,该宏表示在为各个处理函数所写的类声明之后存在消息映射条目,这些函数是该类的成员函数。然后在类的实现源文件中用BEGIN_MESSAGE_MAP()和END_MESSAGE_MAP()宏来定义消息映射。MFC应用程序MESSAG_MAP消息映射的形式如下:,2.2.4 消息机制与消息循环,BEGIN_MESSAGE_MAP(MyClass,MybaseClass)/AFX_MSG_MAP(MyClass)/ClassWizard维护消息映射宏的标

14、记 ON_./MFC预定义消息映射宏 ON_MESSAGE(message,memberFun)/用户自定义消息映射宏/AFX_MSG_MAPEND_MESSAGE_MAP()其中,MyClass是拥有消息映射的派生类名,MybaseClass 是其基类名。,2.2.4 消息机制与消息循环,2.2.4 消息机制与消息循环,3 自定义消息处理,自定义消息处理:定义消息名、分配ID值及完成消息映射。Windows将所有的消息值分为4段:0 x00000 x03FF段:用于Windows系统消息0 x04000 x7FFF段:用于用户自定义的窗口消息0 x80000 xBFFF段:为Windows保

15、留值0 xC0000 xFFFF段:用于应用程序的字符串消息。,2.2.4 消息机制与消息循环,常量WM_USER(为0 x0400)与第一个自定义消息值相对应,用户必须为自己的消息定义相对于WM_USER的偏移值,利用#define语句直接定义自己的消息,如下所示:#define WM_HIDE WM_USER+3/自定义消息WM_USER 也可以调用窗口消息注册函数RegisterWindowMessage()来定义一个Windows消息,由系统分配消息一个整数值。该函数原型为:UINT RegisterWindowMessage(LPCTSTR lpString);其中参数lpStrin

16、g是要定义的消息名,调用成功后将返回该消息的ID值。,2.2.4 消息机制与消息循环,2.2.4 消息机制与消息循环,自定义消息方法的步骤:1、:定义消息#define WM_HIDE WM_USER+101 2、在类头文件的AFX_MSG块中声明消息处理函数:class CMainFrame:public CFrameWndprotected:/AFX_MSG(CMainFrame)afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);afx_msg void OnTimer(UINT nIDEvent);afx_msg LRESULT On

17、Hide(WPARAM wParam,LPARAM lParam);/AFX_MSGDECLARE_MESSAGE_MAP(),2.2.4 消息机制与消息循环,3、在类的实现文件中,使用ON_MESSAGE宏指令将消息映射到消息处理表中。BEGIN_MESSAGE_MAP(CMainFrame,CFrameWnd)/AFX_MSG_MAP(CMainFrame)ON_WM_CREATE()ON_WM_TIMER()ON_MESSAGE(WM_HIDE,OnProgress)/注意这条语句的后面没有分号/AFX_MSG_MAPEND_MESSAGE_MAP(),2.2.4 消息机制与消息循环,4

18、、实现消息处理函数。该函数使用WPRAM和LPARAM参数并返回LRESULT。LRESULT CMainFrame:OnHide(WPARAM wParam,LPARAM lParam)MessageBox(_T(我的消息);return 0;,2.2.4 消息机制与消息循环,5、在适当的时候发送自定义消息,进行消息处理。需要注意使用SendMessage还是PostMessage进行处理:SendMessage是消息处理完毕后再返回;而PostMessage则是把消息放到消息队列后立即返回。SendMessage(theApp.GetMainWnd()-GetSafeHwnd(),WM_P

19、ROGRESS,0L,0L);如果用户需要整个系统唯一的消息,可以调用SDK函数RegisterWindowMessage并使用ON_REGISTER_MESSAGE宏指令取代ON_MESSAGE宏指令,其余步骤同上。,2.2.4 消息机制与消息循环,SendMessage 函数原型LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam)hWnd:其窗口程序将接收消息的窗口的句柄。Msg:指定被发送的消息号。wParam:指定附加的消息特定信息。lParam:指定附加的消息特定信息。返回值:返回值指定消息处理的结果,

20、依赖于所发送的消息。,2.2.4 消息机制与消息循环,演示并编写一个自定义消息应用程序,添加WM_PROGRESS消息。当程序运行时,则调用自定义消息处理函数,输出文本“自定义消息处理函数被调用!”。,消息传递,标准Windows消息传递直线上溯命令消息传递迂回上溯,消息传递,对于WM_COMMAND消息。框架窗口实际上是大多数WM_COMMAND消息的接受者,但WM_COMMAND消息还可以在视图、文档,甚至应用程序类中被处理。,文档视图体系结构是MFC应用程序框架结构的基石,它定义了一种程序结构,这种结构利用文档对象保存应用程序的数据,依靠视图对象控制视图显示数据,文档与视图的关系是一对多

21、的关系,也就是说,文档中的数据可以以不同的方式显示。,2.3 文档与视图,2.3 文档与视图,文档负责数据读取、存取以及其它的操作。CDocument类本身只是一个空壳,我们需要从它派生一个数据自已的类,并在类中声明我们需要的变量,用以承载数据。CDocument类已经为我们做好了一些重要的函数,其中包括与View类的”沟通”函数、文档存取等函数。,表 主要的CDocument操作,2.3 文档与视图,表 主要的CDocument可覆盖函数,2.3 文档与视图,用户可通过函数GetFirstViewPosition()和GetNextView()得到和文档关联的视图的指针,代码如下:POSIT

22、ION pos=GetFirstViewPosition();/得到视图列表头的位置While(pos!=NULL)CView*pView=GetNextView(pos);/获得视图列表中的视图指针,2.3 文档与视图,2.3 文档与视图,视图类有两个用途:提供文档的可视化表示将用户输入(特别是鼠标和键盘消息)转换为操作文档数据的命令。MFC还包含了一组CView类的派生类,用来完成不同功能的视图。,CEditView:简单的文本编辑器,类似NotepadCListView:基于列表的视图,类似文件夹浏览CTreeView:基于树状控件的视图,类似文件浏览左侧的树状结构CRichEditVi

23、ew:支持多种字体、OLE和RTF格式的高级编辑器CScrollView:支持滚动条的视图CFormView:窗体视图,支持在上边使用对话框控件CRecordView:连接到ODBC数据库的视图CDaoRecordView:连接到DAO数据库的视图,CView的子类,2.3 文档与视图,2.3 文档与视图,一个文档可以具有与其联系的多个视图,而一个视图只能属于一个文档。CView类保存了m_pDocument数据成员,并将该指针提供给视图的GetDocument成员函数使用,用以标识出视图类所属的文档。AppWizard为视图类生成源代码时,它覆盖了基类的GetDocument函数。其强制转换

24、了m_pDocument为派生类指针。,2.3 文档与视图,表 主要的CView可覆盖函数,2.3 文档与视图,OnInitialUpdate与OnUpdate在SDI中,视图与文档一样,只构造一次,重复使用。在SDI中,每当文档被打开或创建时,都要调用视图的OnInitialUpdate()OnInitialUpdate()默认要调用OnUpdate()OnUpdate()的默认操作是使视图客户区无效并执行重绘。在CView类的派生类中,如果重写了OnInitialUpdate(),需要要调用CView:OnInitialUpdate(),否则新文档被打开或创建时不会被更新。,2.3 文档与

25、视图,CView:OnDraw何时调用:在WM_PAINT到来时(当视窗显示区域的一部分显示内容或者全部变为无效,以致于必须更新画面时,将由这个讯息通知程式。)在文档被打印时什么是CDCDC:Device Context,设备描述表。在WM_PAINT到来时,DC指向屏幕设备在文档被打印时,DC指向打印机设备,2.3 文档与视图,OnPaint()与OnDraw WM_PAINT到来时会调用OnPaint()函数,此函数在CView中被定义。WM_PRINT到来时会调用OnPrint()函数,此函数在CView中被定义。两个函数都调用了OnDraw(),并传送不同的DC,分别代表屏幕设备与打印

26、设备。,2.4 工具栏与状态栏,2.4 工具栏与状态栏,工具栏简介工具栏对象是一种窗口,工具栏中的所有按钮的图形被存储在一个位图中,而该位图被定义在应用程序的资源文件中。工具栏按钮与菜单选项是类似的。单击工具栏按钮将产生相应的命令,应用程序通过提供消息处理函数来处理产生的命令。如果工具栏的某个按钮没有COMMAND或UPDATE_COMMAND_UI处理函数,那么框架自动使该按钮无效。工具栏和状态栏一般作为框架窗口类的成员变量声明,在创建框架窗口时自动创建它们,在销毁框架窗口时自动销毁所创建的控件栏对象。使用AppWizard创建应用程序基本框架时,可以得到初始的工具栏和状态栏。,2.4.1

27、工具栏,系统默认生成的工具栏资源为IDR_MAINFRAME,可以在此基础上设计自己的工具栏,删除或添加一些按钮。需要为工具栏按钮提供ID号,一般取某个菜单项的ID。,2.4.1 工具栏,工具栏的创建:(1)创建工具栏资源(2)构造CToolBar对象,即在边框窗口类的声明中添加类似以下的声明:CToolBar m_wndToolBar;(3)调用Create或CreateEx创建工具栏,然后调用LoadToolBar装载工具栏资源。,工具栏的创建,int CMainFrame:OnCreate(LPCREATESTRUCT lpCreateStruct)if(!m_wndToolBar.Cr

28、eateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC)|!m_wndToolBar.LoadToolBar(IDR_MAINFRAME)TRACE0(Failed to create toolbarn);return-1;/fail to create,CToolBar m_wndToolBar;,工具栏的停靠,int CMainFrame:OnCreate(LPCREATESTRUCT lpCreateStruct)m_wndT

29、oolBar.EnableDocking(CBRS_ALIGN_ANY);EnableDocking(CBRS_ALIGN_ANY);DockControlBar(,调用Create时还可以指定工具栏的风格,默认风格是WS_CHILD|WS_VISIBLE|CBRS_TOP。CBRS_TOP 工具栏在边框窗口顶部CBRS_BOTTOM 工具栏在边框窗口底部CBRS_NOALIGN 边框窗口改变大小时,工具栏不重定位CBRS_TOOLTIPS 使工具提示有效。CBRS_SIZE_DYNAMIC 工具栏尺寸可变。CBRS_SIZE_FIXED 工具栏尺寸固定。CBRS_FLOATLNG 工具栏是浮

30、动的。CBRS_FLYBY 在状态栏中显示按钮的有关信息。CBRS_HIDE_INPLANE 不显示工具栏。,工具栏的创建,停靠方式,CToolBar的EnableDocking:设置工具栏能停靠在何处?CBRS_ALIGN_ANYCBRS_ALIGN_TOP、CBRS_ALIGN_LEFTCBRS_ALIGN_RIGHT、CBRS_ALIGN_BOTTOMCMainFrame类的EnableDocking:设置能让工具栏停靠在何处?调用DockControlBar,完成工具栏停靠,具体效果由上面的两个EnableDocking共同决定。,2.4.1 工具栏,演示在系统提供的工具栏上添加并编辑

31、新的工具栏按钮,产生消息响应。,2.4.1 工具栏,创建新工具栏资源定义工具栏对象MainFrm.h中protected:CStatusBar m_wndStatusBar;CToolBar m_wndToolBar;CToolBar m_wndTool1;,系统的工具栏,第二个工具栏,多工具栏实现创建,int CMainFrame:OnCreate()if(!m_wndToolBar.CreateEx()|!m_wndToolBar.LoadToolBar(IDR_MAINFRAME)TRACE0(Failed to create toolbarn);return-1;if(!m_wndTo

32、ol1.CreateEx()|!m_wndTool1.LoadToolBar(IDR_TOOL)TRACE0(Failed to create toolbarn);return-1;/fail to create,多工具栏实现停靠,int CMainFrame:OnCreate()m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);m_wndTool1.EnableDocking(CBRS_ALIGN_ANY);EnableDocking(CBRS_ALIGN_ANY);DockControlBar(,只需调用一次,隐藏和显示工具栏,ShowControlBa

33、r(,true显示false隐藏,是否立即显示,false立即显示,2.4.2 状态栏,状态栏可以显示与上下文有关的工具栏按钮和菜单项的帮助信息。在Windows中已经变的非常普遍。,2.4.2 状态栏,状态栏的定义 用AppWizard创建的SDI或MDI应用程序框架中,有一个静态的indicator数组,它是在MainFrm.cpp文件中定义的,被MFC用作状态栏的定义。,2.4.2 状态栏,提示符从左到右水平排列在状态栏中,往数组中添加更多的标识符就可以在状态栏增加更多的提示符,可以根据需要动态改变提示符的大小,通过增加ID_SEPARATOR元素还可增加分隔符。最左边的提示符(位置0)

34、通常用作消息区,可以在其中显示命令提示之类的文本字符串。创建状态栏 创建状态栏的步骤:(1)构造CStatusBar对象。(2)调用Create创建状态栏并将其与CStatusBar对象联结。(3)调用成员函数SetIndicators,设置指示符的标识符为数组中相应元素指定的值,装载每个标识符指定的字符串资源并将字符串设为提示符文本。,状态栏的创建,int CMainFrame:OnCreate(LPCREATESTRUCT lpCreateStruct)if(!m_wndStatusBar.Create(this)|!m_wndStatusBar.SetIndicators(indicat

35、ors,sizeof(indicators)/sizeof(UINT)TRACE0(Failed to create status barn);return-1;/fail to create,CStatusBar m_wndStatusBar;,3、自定义状态栏窗格,每个窗格指定一个ID号,同时还要创建一个相同ID号的字符串资源。窗格的初始大小等于关联字符串的长度。,显示鼠标位置-插入窗格,static UINT indicators=ID_SEPARATOR,IDS_MOUSEXY,ID_INDICATOR_CAPS,ID_INDICATOR_NUM,ID_INDICATOR_SCRL,;

36、,插入窗格的ID,显示鼠标位置-输出内容,映射WM_MOUSEMOVE到视图类CString str;CMainFrame*pFrame=(CMainFrame*)AfxGetApp()-m_pMainWnd;CMFCStatusBar*pStatus=,将该成员修改为public修饰,CStatusBar:Create()函数 用于创建一个Windows状态栏(子窗口),并将其连接到CStatusBar对象上,同时设置初始字体和状态栏的高度。该函数原型为:BOOL Create(CWnd*pParentWnd,DWORD dwStyle=WS_CHILD|WS_VISIBLE|CBRS_BO

37、TTOM,UINT nID=AFX_IDW_STATUS_BAR);其中参数pParentWnd为指向父窗口CWnd对象的指针;dwStyle指定状态栏的风格,除了标准的Windows风格外,还可以是CBRS_TOP(状态栏位于框架窗口的顶部)、CBRS_BOTTOM(状态栏位于框架窗口的底部)、CBRS_NOALIGN(当父窗口改变时,状态栏不被重新定位);参数nID表示该状态栏的子窗口ID。如果函数调用成功,则返回一个非0值,否则返回0。,CStatusBar常用成员,SetIndIcators()函数 函数SetIndIcators()用于设置指示器的ID,并装入由每个ID指定的字符串资

38、源,然后将指示器的文字设置为该字符串,该函数的原型为:BOOL SetIndIcators(const UINT*lpIDArray,int nIDCount);参数lpIDArray为指向ID数组的指针,nIDCount为lpIDArray所指向的数组元素的个数。该函数按照数组lpIDArray中的对应元素的值设定标识符ID的值,加载由每个ID所指定的字符串资源,并把字符串设置为标识符的文字。如果该函数操作成功,在返回一个非0值,否则返回0。,CStatusBar常用成员,SetPaneInfo()函数 函数SetPaneInfo()用于设置给定索引值的指示器ID、风格和宽度。它的原型为:v

39、oid SetPaneInfo(int nIndex,UINT nID,UINT nStyle,int cxWidth);该函数给标识符栏设置一个新的ID、风格和宽度。可供选择的标识符风格有:,CStatusBar常用成员,SetPaneText()函数 函数SetPaneText()用于设置给定索引值的指示器的文本。它的原型为:BOOL SetPaneText(int nIndex,LPCTSTR lpszNewText,BOOL bUpdate=TRUE);该函数用lpszNewText所指向的字符串来设置状态栏的文字。,CStatusBar常用成员,2.5-2.7 MFC新功能,边演示边

40、讲解,当前位置被访问的位置访问方法文档视图GetFirstViewPositionGetNextView文档模板GetDocTemplate视图文档GetDocument视图框架GetParentFrame框架视图GetActiveView框架文档GetActiveDocumentMDI主框架MDI子框架MDIGetActiveMDI子框架MDI主框架GetParentFrame任何位置应用程序AfxGetApp任何位置主框架AfxGetMainWnd,Doc/View结构的五个基本成员经常需要互相访问,假设某个视图想要获得文档,或某个框架需要获得活动视图,可以通过此表提供的方法进行解决,2.8 应用程序框架类对象分析,87,谢谢!,88,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号