当前位置:首页 > 4、菜单工具栏与状态栏
1.创建工具栏窗口
调用CToolBar::Create( )或CreateEx( )函数创建并初始化工具栏窗口对象。若创建成功,函数返回TRUE,否则返回FALSE。
2.装载工具栏资源
调用LoadToolBar( )函数装载工具栏资源。用Create( )或者CreateEx( )函数创建工具栏,其实只是获得了一个窗口句柄,工具栏窗口中位图按钮的加载是靠LoadToolBar( )函数来完成的。若加载成功,将返回TRUE,否则返回FALSE。 3.设置工具栏风格
如果在调用初始化函数CToolBar::Create( )或者CreateEx( )时设置的工具栏风格不满足需要,可以再用SetBarStyle( )函数重新进行设置。 4.设置工具栏停靠特性
设置工具栏停靠特性,需要调用EnableDocking( )函数。既要调用CControlBar:: EnableDocking( )函数设置工具栏的停靠特性,还要调用框架类的成员函数EnableDocking( )函数来设置框架窗口以允许它的子窗口控制栏可以以何种方式停靠。不管一个框架窗口中有多少个子窗口控制栏,该函数只需调用一次。
5. 设置工具栏的初始停靠位置
通过调用CFrameWnd::DockControlBar( )函数定位一个工具栏的初始停靠位置。 6.移动工具栏
调用CFrameWnd::FloatControlBar( )函数来移动、定位一个工具栏。 7. 工具栏隐显控制
通过对函数CWnd::SetStyle( )的调用可以改变某些工具栏窗口的风格,但该函数不能改变WS_VISIBLE,只能通过父类CWnd的ShowWindow( )成员函数来显示或隐藏工具栏。 【例4.9】编写一个单文档应用程序Li4_9。为该应用程序创建一个带有“线”、“圆”、“矩形”和“文本”4个按钮的工具栏,当用户单击工具栏上的按钮时,在窗口中显示相应的图形。
4.3 状态栏
状态栏实际上是一个窗口,安置在主窗口的下边,一般分为几个窗格,每个窗格显示不同的信息。
使用AppWizard创建的单文档应用程序,接受默认选项时,生成的应用程序自动创建带有默认窗格的状态栏。
4.3.1 状态栏类的继承关系
在MFC中,状态栏的功能由CStatusBar类实现。因此,在程序中状态栏是一个窗口型对象。
4.3.2 状态栏类的成员函数 CMainFrame类
CStatusBar m_wndStatusBar; CStatusBar类
SetPaneInfo() SetPaneText()
4.3.3 状态栏操作
利用MFC AppWizard向导创建应用程序时,首先在CMainFrame类中定义一个成员变量m_wndStatusBar,它是状态栏类CStatusBar的对象。其次在MFC应用程序框架的实现文件MainFrm.cpp中,为状态栏定义一个静态数组indicators,如下所示:
static UINT indicators[ ]= {
ID_SEPARATOR, //显示命令功能提示 ID_INDICATOR_CAPS, //显示大写锁定键状态 ID_INDICATOR_NUM, //显示数字锁定键状态 ID_INDICATOR_SCRL, //显示滚动锁定键状态 };
这个全局的提示符数组indicators中的每个元素代表状态栏上一个窗格的ID值,这些ID在应用程序的串表资源String Table中进行了说明。
通过增加新的ID标识来增加用于显示状态信息的窗格。状态栏显示的内容由数组indicators决定,需要在状态栏中显示的各窗格的标识符、位置以及个数也由该数组决定,状态栏显示的内容是可以修改的。
最后CWnd::Create( )函数以主框架窗口为父窗口创建状态栏,创建后默认停靠在主框架窗口的底部。CWnd::SetIndicators(indicators,sizeof(indicators)/sizeof(UINT))函数将创建后的状态栏分隔为sizeof(indicators)/sizeof(UINT)个窗格,窗格的ID分别为indicators数组中的元素值。
一个应用程序只有一个状态栏,所以对状态栏的操作主要是对状态栏上窗格的操作。
为了把一个窗格添加到默认的状态栏中,一般要完成下列步骤:
1 为新建窗格创建一个命令ID,在字符串资源中,增加这个字符串资源;
2 将该窗格的命令ID添加到状态栏的静态数组indicators中; 3 通过CMainFrame类成员变量m_wndStatusBar修改窗格文字。
【例4.10】编写一个单文档应用程序Li4_10。程序运行后,在状态栏中显示系统时间。
4.4 应用实例
编写一个能用不同的颜色及线宽绘制正弦与余弦曲线的应用程序。程序运行后,首先在视图窗口中显示坐标轴,然后根据用户所选择的曲线类型、颜色及线宽绘制曲线,并在状态栏中显示相关的提示信息。
见讲义“正弦余弦曲线程序”和程序curve
共分享92篇相关文档