- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章:菜单
* * 6.2.4 工具栏类CToolBar 类CToolBar提供了带有位图按钮和可选分隔符的工具栏,工具栏按钮有下压式、复选框按钮或单选按钮。CToolBar对象通常是做为派生类CFrameWnd或CMDIFrameWnd框架窗口的对象成员,利用AppWizard创建应用程序框架时,在框架类中已创建了一个CToolBar对象。 MFC的工具栏类CToolBar是创建用来接收某些命令键入并向用户显示状态信息的类,利用它可以立即访问程序命令。 从编程的角度看,工具栏是一个显示一系列位图按钮的子窗口,一旦创建了工具栏并使其可见,就可以用操作窗口的方法来操作它。工具栏的按钮和菜单或加速键一样,单击他们都生成WM_COMMAND消息,并且工具栏的命令ID与菜单或加速键的命令ID相同。下面为该类中几个重要的函数说明。 * 1.Create()函数 Create()函数用于创建一个Windows工具栏,并将其连接到CToolBar对象上,同时设置工具条的默认高度。该函数的原型如下: BOOL Create( CWnd* pParentWnd, DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_TOP,UINT nID = AFX_IDW_TOOLBAR ); 2.LoadToolBar()函数 该函数装载指定的工具栏资源,它的原型为: BOOLLoadToolBar(LPCTSTR lpszResourceName ); BOOL LoadToolBar( UINT nIDResource ); * 6.2.5 在应用程序框架中创建工具栏对象 在利用MFC AppWizard生成的单文档应用程序中,工具栏对象的创建是在应用程序框架类中,可以说应用程序框架类的一个主要功能就是管理工具栏和状态栏。 1.在框架类CMainFrame类中声明工具栏对象 打开上一节所生成的应用程序。在WorkSpace窗口中选择ClasseView选项卡,用鼠标双击类视图中的CMainFrame类,程序将定位到该类对应的头文件MainFrm.h中,下面为该类的头文件中有关框架类的声明的内容,所有代码都是自动生成的,请利用上一篇所讲的面向对象理论知识对它进行分析。 点击代码 * 语句CToolBar m_wndToolBar;代表在框架类中有一个从CToolBar派生的对象_wndToolBar;语句CStatusBar m_wndStatusBar代表在框架类中有一个从状态栏类CStatusBar实例化一个状态栏对象m_wndStatusBar。 2.在框架类CMainFrame类的实现文件中初始化工具栏对象 打开上一节所生成的应用程序。在WorkSpace窗口中选择ClasseView选项卡,用鼠标单击类视图中的CMainFrame类,将该类展开,双击框架类的OnCreate成员函数,程序将自动定位到该类对应的实现文件MainFrm.cpp中的OnCreate的实现处。下面为该类的消息响应函数OnCreate的主要内容(WM_CREATE的响应函数),所有代码都是自动生成的。 点击代码 * 6.2.6 工具栏的消息处理机制 若一个工具栏按钮的资源ID与菜单选项的资源ID一样时,单击工具栏按钮与选择该菜单发出的消息都一样。该命令消息可以像菜单消息一样进行消息的传递,因此在菜单一章中讲的命令消息的传递机制也同样适合于工具栏消息。工具栏要处理的两个主要消息是WM_COMMAND和UPDATE_COMMAND_UI。 和菜单一样,应用程序是通过提供消息映射函数来处理单击工具栏按钮所产生的命令,如果工具栏的某个按钮没有消息COMMAND或UPDATE_COMMAND_UI对应的处理函数,那么框架自动使该按钮无效。 下面我们在视图类中添加对工具栏按钮ID_QUIT_WINDOWS和ID_CARTOON的消息响应函数,添加的方法和对菜单的单击一样,参见6.1.5节的叙述。点击代码 * protected: // control bar embedded members CStatusBar m_wndStatusBar; CToolBar m_wndToolBar; if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CB
文档评论(0)