教学第4章-菜单工具栏与状态栏课件_第1页
教学第4章-菜单工具栏与状态栏课件_第2页
教学第4章-菜单工具栏与状态栏课件_第3页
教学第4章-菜单工具栏与状态栏课件_第4页
教学第4章-菜单工具栏与状态栏课件_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章菜单、工具栏与状态栏

VisualC++程序设计与应用教程4.1菜单

4.2工具栏

4.3状态栏4.4应用实例第4章菜单、工具栏与状态栏Vis124.1菜单4.1.1菜单的类型

常见菜单有3种:主菜单、弹出菜单和快捷菜单。1.主菜单

指出现在应用程序主窗口或最上层窗口的菜单。通常对应有一个弹出菜单作为它的子菜单。24.1菜单4.1.1菜单的类型232.弹出菜单指选择主菜单或一个菜单项时弹出的子菜单。3.快捷菜单

当右击某个界面对象时,通常会弹出快捷菜单,它出现在鼠标箭头的位置,快速展示当前对象可用的命令功能。32.弹出菜单34菜单设计一般需要经过下面两步:(1)使用菜单编辑器编辑菜单资源;(2)使用ClassWizard进行消息映射,编辑成员函数,完成菜单所要实现的功能。4菜单设计一般需要经过下面两步:454.1.2编辑菜单

使用菜单编辑器来编辑菜单资源。双击ResourceView视图中的Menu菜单资源,打开菜单编辑器。54.1.2编辑菜单561.插入新菜单项在当前空白菜单项位置插入选定窗口中的空白菜单项后按回车键(或双击空白菜单项),系统弹出菜单属性对话框。在某菜单项前插入选中该菜单项并按Ins键,再双击该空白菜单项进行编辑。61.插入新菜单项672.属性对话框的设置

用于输入菜单项的标识符(ID)、标题(Caption)和菜单项在状态栏上显示的提示(Prompt)信息等。菜单项的标识符(ID)菜单项在状态栏上显示的提示信息标题72.属性对话框的设置菜单项的标识符(ID)菜单项在状态栏上788893.调整菜单项位置

选中某菜单项将其拖至适当位置。4.删除菜单项

用鼠标单击菜单项或用上、下、左、右光标键选择菜单项,然后单击Cut按钮或按Del键删除。93.调整菜单项位置910【例4.1】编写一个单文档应用程序MyDraw,在菜单栏中增加一个“绘图”主菜单,并在其中添加“矩形”和“椭圆”两个菜单项。10【例4.1】编写一个单文档应用程序MyDraw,在菜单栏10114.1.3建立消息映射

在上例中仅添加了菜单,并没有实现菜单的功能,即没有对应的命令处理函数与菜单项对应,因此,添加的菜单项是灰色的,即处于当前不可用状态。添加新的菜单项后,还应该为菜单项指定一个处理函数,即利用ClassWizard类向导添加一个消息处理函数。114.1.3建立消息映射1112【例4.2】为例4.1中增加的菜单项添加消息处理函数。12【例4.2】为例4.1中增加的菜单项添加消息处理函数。12134.1.4菜单的有效控制

一般情况下,菜单项都不止一种状态。

例如,在没有选择任何内容时,Edit菜单下的Copy、Cut等菜单项是无效的(灰色显示)。有时,我们还会看到,在菜单项旁边可能还会有检查标记,表示它是选中的还是不选中的。比如,在Word的视图菜单项下,当用户选用【网格线】或【标尺】时,相应菜单项前会出现一个“√”。

MFC通过消息映射机制和CCmdUI类更新菜单项的显示。134.1.4菜单的有效控制1314

在类向导ClassWizard的MessageMap标签中,如果选择一个菜单ID,在Messages列表框中就会出现以下两项:

COMMANDUPDATE_COMMAND_UI

其中UPDATE_COMMAND_UI是更新命令用户接口消息,专门用于处理菜单项和工具条按钮的更新。14在类向导ClassWizard的Mes1415【例4.3】为例4.2的程序MyDraw添加更新用户界面的消息处理函数,使程序启动时菜单项【椭圆】处于不可用状态,当用户单击【矩形】菜单项后,在菜单项前显示“√”标记,并使【椭圆】菜单项变为可用。15【例4.3】为例4.2的程序MyDraw添加更新用户界面15164.1.5快捷菜单

为应用程序创建快捷菜单主要有以下两种方法。1.使用ComponentGallery创建快捷菜单

ComponentGallery(组件画廊)是一个组件库,它保存着可以共享或重用的代码。这些代码包括由VisualC++自带的组件和从用户工程中增加到Gallery中去的用户自定义组件。164.1.5快捷菜单1.使用ComponentGal1617【例4.4】为例4.3中的应用程序MyDraw增加一个快捷菜单。程序运行后,用户在视图窗口中右击,弹出一个快捷菜单,显示主菜单“绘图”下的所有菜单项。快捷菜单17【例4.4】为例4.3中的应用程序MyDraw增加一个17182.使用TrackPopupMenu()函数创建快捷菜单

使用菜单资源编辑器和CMenu::TrackPopupMenu()函数来创建右键快捷菜单。CMenu::TrackPopupMenu函数的原型为:

BOOLTrackPopupMenu(UINTnFlags,intx,inty,CWnd*pWnd,LPCRECTlpRect=NULL);

该函数的功能是显示一个右键快捷菜单。其中,nflags表示屏幕位置标志(见下表)。x、y分别表示菜单的水平坐标和顶端的垂直坐标;pWnd表示弹出菜单的窗口,包括全部的WM_COMMAND消息;lpRect表示一个矩形域,当单击这个矩形域时菜单不消失。182.使用TrackPopupMenu()函数创建快捷菜1819参数nflags的含义

19参数nflags的含义1920【例4.5】使用TrackPopupMenu()函数创建例4.3中的快捷菜单。20【例4.5】使用TrackPopupMenu()函数20214.1.6创建动态菜单动态创建菜单分为以下3个步骤。(1)利用CreateMenu()函数创建一个空的弹出式菜单,该函数的原型为:

HMENUCreateMenu()

该函数没有参数,它的返回值是一个菜单句柄。

(2)调用AppendMenu()或InsertMenu()函数在菜单中加入菜单项。

(3)调用函数SetMenu()加载动态菜单。214.1.6创建动态菜单2122【例4.6】为例4.4中的应用程序MyDraw创建一个【画笔】动态菜单。程序运行后,用户单击【绘图|矩形】菜单项,在主菜单中添加动态菜单【画笔】,并通过此菜单的子菜单项画一个红色矩形。22【例4.6】为例4.4中的应用程序MyDraw创建一个【22234.1.7创建基于对话框的菜单

从第2章可知,利用MFCAppWizard[exe]向导工具可以生成基于对话框的应用程序。

基于对话框的应用程序在运行时并没有菜单栏。下面我们通过实例来讨论如何给它创建一个菜单。

234.1.7创建基于对话框的菜单2324【例4.7】编写一个基于对话框的应用程序Li4_7,为该应用程序添加一个菜单。菜单包括【文件】、【编辑】、【视图】和【帮助】4个主菜单项。24【例4.7】编写一个基于对话框的应用程序Li4_7,为24254.2工具栏

在MFC中,工具栏的功能由类CToolBar实现。工具栏资源和工具栏类CToolBar是工具栏的两个要素。创建工具栏的基本步骤是:l

创建工具栏资源;l

构建一个CToolBar对象;l

调用CToolBar::Create()或CreateEx()函数创建工具栏窗口;l

调用CToolBar::LoadToolBar载入工具栏资源。254.2工具栏在MFC中,工具栏25264.2.1编辑工具栏

使用工具栏编辑器来编辑工具栏资源。双击ResourceView视图中的Toolbar工具栏资源,即可打开工具栏编辑器。264.2.1编辑工具栏26271.添加按钮

双击工具条上的空白按钮或单击空白按钮后,选择【View|Properties】菜单项,弹出如图所示的ToolbarButtonProperties属性对话框,在此对话框中编辑按钮的标识符、宽度与高度值。271.添加按钮27282.删除按钮

将按钮拖出工具栏外,即可删除该按钮。3.编辑按钮位图设置按钮位图有以下两种方法。l

利用绘图工具与调色板直接进行绘制l

先利用专用绘图软件制作,然后粘贴到按钮上282.删除按钮28294.2.2建立消息映射

通常,只需让一个按钮的ID值与同样功能菜单项的ID值相同即可。如果按钮没有对应菜单项,则必须利用ClassWizard类向导添加一个消息处理函数。294.2.2建立消息映射2930【例4.8】编写一个单文档应用程序Li4_8。删除默认工具栏上的【打印设置】按钮,并在【帮助】按钮前添加【上一页】和【下一页】2个按钮,当用户单击这两个按钮后,视图中分别显示文本“这是《上一页》按钮!”和“这是《下一页》按钮!”。30【例4.8】编写一个单文档应用程序Li4_8。删除默认30314.2.3自定义工具栏的操作

向导生成的标准工具栏的ID值为IDR_MAINFRAME。对一些功能复杂的应用程序,需要创建多个不同的工具栏。生成工具栏的基本步骤:(1)添加工具栏资源;

(2)参照MFC应用程序框架添加工具栏的方法,构造一个CToolBar类的对象,调用CToolBar::Create()或CreateEx()函数创建工具栏窗口;

(3)调用CToolBar::LoadToolBar()函数载入工具栏资源。

除这些基本步骤之外,还可以调用其他相关函数从而进一步改善工具栏。314.2.3自定义工具栏的操作除这些基本步骤之外,还可31321.创建工具栏窗口

调用CToolBar::Create()或CreateEx()函数创建并初始化工具栏窗口对象。若创建成功,函数返回TRUE,否则返回FALSE。2.装载工具栏资源

调用LoadToolBar()函数装载工具栏资源。用Create()或者CreateEx()函数创建工具栏,其实只是获得了一个窗口句柄,工具栏窗口中位图按钮的加载是靠LoadToolBar()函数来完成的。若加载成功,将返回TRUE,否则返回FALSE。321.创建工具栏窗口32333.设置工具栏风格

如果在调用初始化函数CToolBar::Create()或者CreateEx()时设置的工具栏风格不满足需要,可以再用SetBarStyle()函数重新进行设置。4.设置工具栏停靠特性

设置工具栏停靠特性,需要调用EnableDocking()函数。既要调用CControlBar::EnableDocking()函数设置工具栏的停靠特性,还要调用框架类的成员函数EnableDocking()函数来设置框架窗口以允许它的子窗口控制栏可以以何种方式停靠。不管一个框架窗口中有多少个子窗口控制栏,该函数只需调用一次。333.设置工具栏风格33345.设置工具栏的初始停靠位置

通过调用CFrameWnd::DockControlBar()函数定位一个工具栏的初始停靠位置。6.移动工具栏

调用CFrameWnd::FloatControlBar()函数来移动、定位一个工具栏。7.工具栏隐显控制

通过对函数CWnd::SetStyle()的调用可以改变某些工具栏窗口的风格,但该函数不能改变WS_VISIBLE,只能通过父类CWnd的ShowWindow()成员函数来显示或隐藏工具栏。

345.设置工具栏的初始停靠位置3435【例4.9】编写一个单文档应用程序Li4_9。为该应用程序创建一个带有“线”、“圆”、“矩形”和“文本”4个按钮的工具栏,当用户单击工具栏上的按钮时,在窗口中显示相应的图形。35【例4.9】编写一个单文档应用程序Li4_9。为该应用程35364.3状态栏

状态栏实际上是一个窗口,一般分为几个窗格,每个窗格显示不同的信息。使用AppWizard创建的单文档应用程序,接受默认选项时,生成的应用程序自动创建带有默认窗格的状态栏。364.3状态栏状态栏实际上是一个窗3637

4.3.1状态栏类的继承关系

在MFC中,状态栏的功能由CStatusBar类实现。374.3.1状态栏类的继承关系3738

4.3.2状态栏类的成员函数

384.3.2状态栏类的成员函数3839

4.3.3状态栏操作

利用MFCAppWizard向导创建应用程序时,首先在CMainFrame类中定义一个成员变量m_wndStatusBar,它是状态栏类CStatusBar的对象。其次在MFC应用程序框架的实现文件MainFrm.cpp中,为状态栏定义一个静态数组indicators,如下所示:

staticUINTindicators[]={ID_SEPARATOR,//显示命令功能提示

ID_INDICATOR_CAPS, //显示大写锁定键状态

ID_INDICATOR_NUM, //显示数字锁定键状态

ID_INDICATOR_SCRL, //显示滚动锁定键状态};394.3.3状态栏操作利3940

这个全局的提示符数组indicators中的每个元素代表状态栏上一个窗格的ID值,这些ID在应用程序的串表资源StringTable中进行了说明。通过增加新的ID标识来增加用于显示状态信息的窗格。状态栏显示的内容由数组indicators决定,需要在状态栏中显示的各窗格的标识符、位置以及个数也由该数组决定,状态栏显示的内容是可以修改的。40这个全局的提示符数组indi4041

最后CWnd::Create()函数以主框架窗口为父窗口创建状态栏,创建后默认停靠在主框架窗口的底部。CWnd::SetIndicators(indicators,sizeof(indicators)/sizeof(UINT))函数将创建后的状态栏分隔为sizeof(indicators)/sizeof(UINT)个窗格,窗格的ID分别为indicators数组中的元素值。41最后CWnd::Creat4142

一个应用程序只有一个状态栏,所以对状态栏的操作主要是对状态栏上窗格的操作。为了把一个窗格添加到默认的状态栏中,一般要完成下列步骤:l为新建窗格创建一个命令ID和默认字符串;l将该窗格的命令ID添加到状态栏的静态数组indicators中;l为该窗格创建一个命令更新处理程序。42一个应用程序只有一个状态栏4243

【例4.10】编写一个单文档应用程序Li4_10。程序运行后,在状态栏中显示系统时间。43【例4.10】编写一个单文档应用程序Li4_143444.4应用实例

编写一个能用不同的颜色及线宽绘制正弦与余弦曲线的应用程序。程序运行后,首先在视图窗口中显示坐标轴,然后根据用户所选择的曲线类型、颜色及线宽绘制曲线,并在状态栏中显示相关的提示信息。444.4应用实例编写一个能用不同的颜色及线宽44第4章菜单、工具栏与状态栏

VisualC++程序设计与应用教程4.1菜单

4.2工具栏

4.3状态栏4.4应用实例第4章菜单、工具栏与状态栏Vis45464.1菜单4.1.1菜单的类型

常见菜单有3种:主菜单、弹出菜单和快捷菜单。1.主菜单

指出现在应用程序主窗口或最上层窗口的菜单。通常对应有一个弹出菜单作为它的子菜单。24.1菜单4.1.1菜单的类型46472.弹出菜单指选择主菜单或一个菜单项时弹出的子菜单。3.快捷菜单

当右击某个界面对象时,通常会弹出快捷菜单,它出现在鼠标箭头的位置,快速展示当前对象可用的命令功能。32.弹出菜单4748菜单设计一般需要经过下面两步:(1)使用菜单编辑器编辑菜单资源;(2)使用ClassWizard进行消息映射,编辑成员函数,完成菜单所要实现的功能。4菜单设计一般需要经过下面两步:48494.1.2编辑菜单

使用菜单编辑器来编辑菜单资源。双击ResourceView视图中的Menu菜单资源,打开菜单编辑器。54.1.2编辑菜单49501.插入新菜单项在当前空白菜单项位置插入选定窗口中的空白菜单项后按回车键(或双击空白菜单项),系统弹出菜单属性对话框。在某菜单项前插入选中该菜单项并按Ins键,再双击该空白菜单项进行编辑。61.插入新菜单项50512.属性对话框的设置

用于输入菜单项的标识符(ID)、标题(Caption)和菜单项在状态栏上显示的提示(Prompt)信息等。菜单项的标识符(ID)菜单项在状态栏上显示的提示信息标题72.属性对话框的设置菜单项的标识符(ID)菜单项在状态栏上5152852533.调整菜单项位置

选中某菜单项将其拖至适当位置。4.删除菜单项

用鼠标单击菜单项或用上、下、左、右光标键选择菜单项,然后单击Cut按钮或按Del键删除。93.调整菜单项位置5354【例4.1】编写一个单文档应用程序MyDraw,在菜单栏中增加一个“绘图”主菜单,并在其中添加“矩形”和“椭圆”两个菜单项。10【例4.1】编写一个单文档应用程序MyDraw,在菜单栏54554.1.3建立消息映射

在上例中仅添加了菜单,并没有实现菜单的功能,即没有对应的命令处理函数与菜单项对应,因此,添加的菜单项是灰色的,即处于当前不可用状态。添加新的菜单项后,还应该为菜单项指定一个处理函数,即利用ClassWizard类向导添加一个消息处理函数。114.1.3建立消息映射5556【例4.2】为例4.1中增加的菜单项添加消息处理函数。12【例4.2】为例4.1中增加的菜单项添加消息处理函数。56574.1.4菜单的有效控制

一般情况下,菜单项都不止一种状态。

例如,在没有选择任何内容时,Edit菜单下的Copy、Cut等菜单项是无效的(灰色显示)。有时,我们还会看到,在菜单项旁边可能还会有检查标记,表示它是选中的还是不选中的。比如,在Word的视图菜单项下,当用户选用【网格线】或【标尺】时,相应菜单项前会出现一个“√”。

MFC通过消息映射机制和CCmdUI类更新菜单项的显示。134.1.4菜单的有效控制5758

在类向导ClassWizard的MessageMap标签中,如果选择一个菜单ID,在Messages列表框中就会出现以下两项:

COMMANDUPDATE_COMMAND_UI

其中UPDATE_COMMAND_UI是更新命令用户接口消息,专门用于处理菜单项和工具条按钮的更新。14在类向导ClassWizard的Mes5859【例4.3】为例4.2的程序MyDraw添加更新用户界面的消息处理函数,使程序启动时菜单项【椭圆】处于不可用状态,当用户单击【矩形】菜单项后,在菜单项前显示“√”标记,并使【椭圆】菜单项变为可用。15【例4.3】为例4.2的程序MyDraw添加更新用户界面59604.1.5快捷菜单

为应用程序创建快捷菜单主要有以下两种方法。1.使用ComponentGallery创建快捷菜单

ComponentGallery(组件画廊)是一个组件库,它保存着可以共享或重用的代码。这些代码包括由VisualC++自带的组件和从用户工程中增加到Gallery中去的用户自定义组件。164.1.5快捷菜单1.使用ComponentGal6061【例4.4】为例4.3中的应用程序MyDraw增加一个快捷菜单。程序运行后,用户在视图窗口中右击,弹出一个快捷菜单,显示主菜单“绘图”下的所有菜单项。快捷菜单17【例4.4】为例4.3中的应用程序MyDraw增加一个61622.使用TrackPopupMenu()函数创建快捷菜单

使用菜单资源编辑器和CMenu::TrackPopupMenu()函数来创建右键快捷菜单。CMenu::TrackPopupMenu函数的原型为:

BOOLTrackPopupMenu(UINTnFlags,intx,inty,CWnd*pWnd,LPCRECTlpRect=NULL);

该函数的功能是显示一个右键快捷菜单。其中,nflags表示屏幕位置标志(见下表)。x、y分别表示菜单的水平坐标和顶端的垂直坐标;pWnd表示弹出菜单的窗口,包括全部的WM_COMMAND消息;lpRect表示一个矩形域,当单击这个矩形域时菜单不消失。182.使用TrackPopupMenu()函数创建快捷菜6263参数nflags的含义

19参数nflags的含义6364【例4.5】使用TrackPopupMenu()函数创建例4.3中的快捷菜单。20【例4.5】使用TrackPopupMenu()函数64654.1.6创建动态菜单动态创建菜单分为以下3个步骤。(1)利用CreateMenu()函数创建一个空的弹出式菜单,该函数的原型为:

HMENUCreateMenu()

该函数没有参数,它的返回值是一个菜单句柄。

(2)调用AppendMenu()或InsertMenu()函数在菜单中加入菜单项。

(3)调用函数SetMenu()加载动态菜单。214.1.6创建动态菜单6566【例4.6】为例4.4中的应用程序MyDraw创建一个【画笔】动态菜单。程序运行后,用户单击【绘图|矩形】菜单项,在主菜单中添加动态菜单【画笔】,并通过此菜单的子菜单项画一个红色矩形。22【例4.6】为例4.4中的应用程序MyDraw创建一个【66674.1.7创建基于对话框的菜单

从第2章可知,利用MFCAppWizard[exe]向导工具可以生成基于对话框的应用程序。

基于对话框的应用程序在运行时并没有菜单栏。下面我们通过实例来讨论如何给它创建一个菜单。

234.1.7创建基于对话框的菜单6768【例4.7】编写一个基于对话框的应用程序Li4_7,为该应用程序添加一个菜单。菜单包括【文件】、【编辑】、【视图】和【帮助】4个主菜单项。24【例4.7】编写一个基于对话框的应用程序Li4_7,为68694.2工具栏

在MFC中,工具栏的功能由类CToolBar实现。工具栏资源和工具栏类CToolBar是工具栏的两个要素。创建工具栏的基本步骤是:l

创建工具栏资源;l

构建一个CToolBar对象;l

调用CToolBar::Create()或CreateEx()函数创建工具栏窗口;l

调用CToolBar::LoadToolBar载入工具栏资源。254.2工具栏在MFC中,工具栏69704.2.1编辑工具栏

使用工具栏编辑器来编辑工具栏资源。双击ResourceView视图中的Toolbar工具栏资源,即可打开工具栏编辑器。264.2.1编辑工具栏70711.添加按钮

双击工具条上的空白按钮或单击空白按钮后,选择【View|Properties】菜单项,弹出如图所示的ToolbarButtonProperties属性对话框,在此对话框中编辑按钮的标识符、宽度与高度值。271.添加按钮71722.删除按钮

将按钮拖出工具栏外,即可删除该按钮。3.编辑按钮位图设置按钮位图有以下两种方法。l

利用绘图工具与调色板直接进行绘制l

先利用专用绘图软件制作,然后粘贴到按钮上282.删除按钮72734.2.2建立消息映射

通常,只需让一个按钮的ID值与同样功能菜单项的ID值相同即可。如果按钮没有对应菜单项,则必须利用ClassWizard类向导添加一个消息处理函数。294.2.2建立消息映射7374【例4.8】编写一个单文档应用程序Li4_8。删除默认工具栏上的【打印设置】按钮,并在【帮助】按钮前添加【上一页】和【下一页】2个按钮,当用户单击这两个按钮后,视图中分别显示文本“这是《上一页》按钮!”和“这是《下一页》按钮!”。30【例4.8】编写一个单文档应用程序Li4_8。删除默认74754.2.3自定义工具栏的操作

向导生成的标准工具栏的ID值为IDR_MAINFRAME。对一些功能复杂的应用程序,需要创建多个不同的工具栏。生成工具栏的基本步骤:(1)添加工具栏资源;

(2)参照MFC应用程序框架添加工具栏的方法,构造一个CToolBar类的对象,调用CToolBar::Create()或CreateEx()函数创建工具栏窗口;

(3)调用CToolBar::LoadToolBar()函数载入工具栏资源。

除这些基本步骤之外,还可以调用其他相关函数从而进一步改善工具栏。314.2.3自定义工具栏的操作除这些基本步骤之外,还可75761.创建工具栏窗口

调用CToolBar::Create()或CreateEx()函数创建并初始化工具栏窗口对象。若创建成功,函数返回TRUE,否则返回FALSE。2.装载工具栏资源

调用LoadToolBar()函数装载工具栏资源。用Create()或者CreateEx()函数创建工具栏,其实只是获得了一个窗口句柄,工具栏窗口中位图按钮的加载是靠LoadToolBar()函数来完成的。若加载成功,将返回TRUE,否则返回FALSE。321.创建工具栏窗口76773.设置工具栏风格

如果在调用初始化函数CToolBar::Create()或者CreateEx()时设置的工具栏风格不满足需要,可以再用SetBarStyle()函数重新进行设置。4.设置工具栏停靠特性

设置工具栏停靠特性,需要调用EnableDocking()函数。既要调用CControlBar::EnableDocking()函数设置工具栏的停靠特性,还要调用框架类的成员函数EnableDocking()函数来设置框架窗口以允许它的子窗口控制栏可以以何种方式停靠。不管一个框架窗口中有多少个子窗口控制栏,该函数只需调用一次。333.设置工具栏风格77785.设置工具栏的初始停靠位置

通过调用CFrameWnd::DockControlBar()函数定位一个工具栏的初始停靠位置。6.移动工具栏

调用CFrameWnd::FloatControlBar()函数来移动、定位一个工具栏。7.工具栏隐显控制

通过对函数CWnd::SetStyle()的调用可以改变某些工具栏窗口的风格,但该函数不能改变WS_VISIBLE,只能通过父类CWnd的ShowWindow()成员函数来显示或隐藏工具栏。

345.设置工具栏的初始停靠位置7879【例4.9】编写一个单文档应用程序Li4_9。为该应用程序创建一个带有“线”、“圆”、“矩形”和“文本”4个按钮的工具栏,当用户单击工具栏上的按钮时,在窗口中显示相应的图形。35【例4.9】编写一个单文档应用程序Li4_9。为该应用程79804.3状态栏

状态栏实际上是一个窗口,一般分为几个窗格,每个窗格显示不同的信息。使用AppWizard创建的单文档应用程序,接受默认选项时,生成的应用程序自动创建带有默认窗格的状态栏。364.3状态栏状态栏实际上是一个窗8081

4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论