搜档网
当前位置:搜档网 › VC对话框程序添加目录菜单、工具条和状态栏

VC对话框程序添加目录菜单、工具条和状态栏

VC对话框程序添加目录菜单、工具条和状态栏
VC对话框程序添加目录菜单、工具条和状态栏

一、引言

对于不需要文档/视图结构支持的程序一般都采用对话框做为程序的基础框架。虽然在对话框程序上可以通过修改其属性来添加系统菜单,但对比SDI和MDI程序的工具条和状态栏未免使界面显得简单、单调。虽然在V isual Basic 中提供有独立的工具条和状态栏标准控件可以直接在对话框上使用,但V isual C++ 6.0所提供的26种基本Windows标准控件却没有将它们包含其中。因此要在对话框程序中实现工具条和状态栏只能通过编程来动态实现。

二、工具条的实现过程

MFC对于工具条和状态栏分别提供了CToolBar和CStatusBar两个基本类库,但由于在实现时MFC 对其做了过多的封装,以至无法了解内部的一些核心技术。因此本文在实现过程中放弃了相对比较方便的CToolBar和CStatusBar类的使用,而是通过SDK(Software Developers Kit,软件开发工具箱)式的WinAPI 应用程序接口来实现的。在API函数中经常需要用到对话框的窗口句柄和当前的实例句柄,在SDK程序设计中以上两个句柄可以直接从入口函数WinMain()中引出,而在MFC下也对其做了封装,不能直接获取。但MFC也为其留有接口:CWnd窗口类提供的GetSafeHwnd()可以返回对话框的窗口句柄;函数AfxGetInstanceHandle()则可以获取当前应用程序的实例句柄。由于对话框和状态栏属于程序界面的一部分,需要程序启动时就显示出来,因此获取句柄的代码和后面创建显示工具条、状态栏的全部代码都应当放在对话框初始化消息WM_INITDIALOG的响应函数OnInitDialog()中进行:

HWND hDlg=GetSafeHwnd();

HINSTANCE hInstance=AfxGetInstanceHandle();

对于待添加的工具条按钮可以根据情况细分为两种:

一种是Windows标准的一些工具条按钮比如打开文件、打印预览、在线帮助等等,这类工具条按钮可以直接使用预定义好的按钮图标的ID号,在VC自带的CommCtrl.h头文件中有详细定义;

另一种就是用户自己添加的工具栏按钮,只能由用户在资源视图中为其指定相应的图标。不论是那种工具条按钮的创建都是通过对TBBUTTON结构的设置来决定每一个工具条按钮的状态,对于第一个填充好的工具条按钮可以用CreateToolbarEx()来直接将其加入到工具条上,并返回指向工具条的窗口句柄,而对于以后工具条按钮的添加则只能通过向工具条发送TB_ADDBUTTONS消息来实现:

……

//填充工具条按钮结构:

TBBUTTON ptoolbar[30]={{STD_HELP, //指定Windows的标准帮助图标

MU_ONE, //工具条按钮的ID

TBSTA TE_ENABLED, //可用状态

TBSTYLE_BUTTON, //指定创建一个可以下按的按钮

0, //保留,由应用程序定义该参数意义

0}, //按钮字串索引

//创建一个分割按钮用的竖线

{0,0,TBSTA TE_ENABLED,TBSTYLE_SEP,0,0}};

//在对话框上动态创建工具条,并添加工具条按钮:

HWND hToolsWindow=::CreateToolbarEx(hDlg, //指定对话框为父窗口,将工具条创建在对话框上

WS_CHILD|WS_VISIBLE|TBSTYLE_WRAPABLE|TBSTYLE_TOOLTIPS|

TBSTYLE_FLAT|CCS_ADJUSTABLE,//指定工具条的创建风格

IDB_TOOLBAR,//预定义的工具条资源ID

30,HINST_COMMCTRL, //包含图片资源的可执行文件的实例句柄

IDB_STD_SMALL_COLOR,//图片的资源ID

ptoolbar, //待添加的按钮

2, //加入到工具条的按钮的个数

0,0,0,0,sizeof(TBBUTTON));

……

//从IDR_TOOLBAR1资源中装载按钮图标到对话框的工具条上

TBADDBITMAP tab;

tab.hInst=hInstance;

tab.nID=IDR_TOOLBAR1;

iBmp=::SendMessage(hToolsWindow,TB_ADDBITMAP,(WPARAM)3,(LPARAM)&tab);

向工具条添加工具条按钮的关键在于对TBBUTTON数据结构的填充,该数据结构也是在CommCtrl.h 头文件中定义的,原形为:

typedef struct _TBBUTTON {

int iBitmap;

int idCommand;

BYTE fsState;

BYTE fsStyle;

DWORD dwData;

int iString;

} TBBUTTON, NEAR* PTBBUTTON, FAR* LPTBBUTTON;

该结构的数据成员包含了处在工具条里的按钮的相关信息:成员iBitmap是从0开始记数的按钮图象的索引;idCommand标识了匹配的按钮,当按钮被按下产生WM_COMMAND消息的时候会用到该标识;fsState指定了按钮的状态标志,可以是以下8种标志的逻辑组合TBSTA TE_CHECKED、TBSTA TE_ELLIPSES、TBSTATE_ENABLED、TBSTA TE_HIDDEN、TBSTA TE_INDETERMINATE、TBSTA TE_MARKED、TBSTA TE_PRESSED、TBSTA TE_WRAP。至于以上各标志的具体含义在MSDN的在线帮助中有详细说明;fsStyle成员指定了按钮的风格;dwData是应用程序定义的值,通常为0;iString 为从0开始技术的按钮字串的索引。下面这段代码用于向工具条添加自定义的工具条按钮:

TBBUTTON tb;

tb.iBitmap=iBmp+0;

tb.idCommand=MU_TWO;

tb.fsState=TBSTATE_ENABLED;

tb.fsStyle=TBSTYLE_BUTTON;

tb.dwData=0;

tb.iString=0;

完成对TBBUTTON结构的设置后可以通过窗口句柄hToolsWindow向工具条发送TB_ADDBUTTONS 消息来添加按钮到工具条,如想添加按钮之间的分割条,只需将TBBUTTON结构的fsStyle成员变量取值为TBSTYLE_SEP即可:

::SendMessage(hToolsWindow,TB_ADDBUTTONS,(WPARAM)1,(LP ARAM)&tb);

三、状态栏的实现

状态栏的实现与工具条的实现相比非常简单,只需在CreateStatusWindow()函数中对其参数进行设置即可实现:

HWND hStatusWindow=CreateStatusWindow(WS_CHILD|WS_VISIBLE|WS_BORDER,

TEXT("状态栏"),//显示在状态栏上的信息

hDlg, //父窗口句柄

IDS_STATUS); //预定义的资源ID

此时创建的状态栏只是一个位于对话框底部的长条,如需要将其分割为几部分可以在数组中设定好分割点的X坐标,然后通过向状态栏发送SB_SETPARTS消息即可,该消息的wParam参数指定了要将状态栏分割为几部分,lParam参数指定了各分割点的坐标值:

int pint[4]={110,250,300,-1};//110,250,300设定间隔

::SendMessage(hStatusWindow,SB_SETPARTS,4,(LPARAM)pint);

如需向分割后的状态栏内填写信息,可以通过hStatusWindow向状态条发送消息SB_SETTEXT来完成,该消息的两个参数分别用来标识在第几个窗格显示和待显示的信息内容:

::SendMessage(hStatusWindow,SB_SETTEXT,1,(LP ARAM)TEXT("信息一"));

……

小结:本文以SDK的方式实现了在MFC对话框程序下工具条和状态栏的动态添加,使普通的对话框程序也可以象SDI和MDI程序一样拥有自定义风格的工具条和状态栏。全部实现过程的重点是在对相关结构的设置和消息的发送以及控件的动态创建。至于本文所涉及到的结构和函数的详细内容请参阅Microsoft 的MSDN Library 6.0。本文所述程序在Windows 98下,由Microsoft V isual C++ 6.0编译通过。

26-编辑菜单栏_什么是菜单栏和工具栏

26-编辑菜单栏_什么是菜单栏和工具栏 编辑菜单栏“编辑”菜单“编辑”菜单中的一些命令主要是对文件进行编辑的,比如复制、粘贴、填充、描边等。“编辑”菜单是photoshop软件操作中最为常用的菜单之一。 1.“还原”命令这个命令用来将操作进行还原,它的快捷键是CTRL+Z,当时它只能还原一次,如果想要尽可能多地还原操作步骤,那么可以按CTRL+ALT+Z键。 2.“剪切”命令当画面中存在选框的时候,这个命令能将画面中选框中的部分进行裁切,下面我们通过一个练习来讲解。 一:打开这一张图片,然后用选区工具(M)选出一个选区。 二:选择编辑>剪切(CTRL+X),这样选框中的部分就被剪切掉了,如下图。 再选择编辑>粘贴(CTRL+V)就可以把剪切的部分粘贴到画面中。 3.“拷贝”和“粘贴”命令这两个命令基本上是组合来使用的,在画面中制作选框后,选择编辑>拷贝(CTRL+C)命令将其复制然后再选择编辑>粘贴(CTRL+V)将复制的部分粘贴到画面中。与前面的“剪切”命令不同的是,剪切后的图片在选框中的部分就没有了,当时使用“拷贝”和“粘贴”命令后,原图片是完整的。所以大家要注意这两个的区别。 4.“填充”命令“填充”命令的功能与工具箱中的“油漆桶”工具基本相同,只不过它将一些主要的命令和选项集中在一起。如图: 在下拉列表中可以选择很多选项,我们可以选择这些相应的选项来得到不同的效果,不过最为常用的就是前两个选项。其他的大家自己尝试吧。。。。 在“模式”下拉列表中我们可以选择填充的模式,这与前面讲过的混合模式是相同的。如“不透明度”用于改变填充颜色的透明程度。 5.“描边”命令描边命令用于对选框或者对象进行描边,下面通过一个实例来讲解下一:新建文件,然后使用矩形选框工具(M)在画面中做出选框。 二:选择编辑>描边命令,按照下图设置。 三:完成后得到如下效果。 6“自由变换”命令“自由变换”命令是我非常喜欢的一个命令,它灵活多变,用户可以完全地自行控制,做出任何变形。 自由变换:编辑——自由变换(快捷键:Ctrl+T)辅助功能键:Ctrl、Shift、Alt。 其中,Ctrl键控制自由变化; Shift控制方向、角度和等比例放大缩小; Alt键控制中心对称。 一、正常情况下(不按任何键)(1)拖动边框:单边缩放(2)拖动角点:长宽同时缩放(3)框外旋转:自由旋转,任意角度二、Shift+鼠标(1)拖动边框:单边缩放(同一(1),即无影响)(2)拖动角点:长宽等比例缩放(3)框外旋转:以15°的倍数旋转三、Ctrl+鼠标(1)拖动边框:自由平行四边形变换(2)拖动角点:角度,和相邻两边发生变化(3)框外旋转:自由旋转,任意角度(同一(3),即无影响)四、Alt+鼠标(1)拖动边框:对边等比例缩放,角度不变(2)拖动角点:中心对称的自由缩放(不是等比列)(3)框外旋转:自由旋转,任意角度(同一(3),即无影响)Tips:框外旋转时凡

C#菜单栏、工具栏、状态栏

1鄢涛2011/5/18《.NET Windows programming 》 yantao@https://www.sodocs.net/doc/5313324901.html, Visual studio 2010 yantao@https://www.sodocs.net/doc/5313324901.html, 鄢涛2011/5/18《.NET Windows programming 》 yantao@https://www.sodocs.net/doc/5313324901.html, Visual studio 20102 Tower 2011/5/https://www.sodocs.net/doc/5313324901.html, Windows programming yantao@https://www.sodocs.net/doc/5313324901.html, 概述 状态栏(StatusStrip)

3鄢涛2011/5/18 《.NET Windows programming 》 yantao@https://www.sodocs.net/doc/5313324901.html, Visual studio 2010 ! 概述

鄢涛2011/5/18《.NET Windows programming 》 yantao@https://www.sodocs.net/doc/5313324901.html, Visual studio 20105Tower 2011/5/https://www.sodocs.net/doc/5313324901.html, Windows programming yantao@https://www.sodocs.net/doc/5313324901.html, ü概述 MenuStrip 工具栏(ToolStrip) MDI 窗体和MenuStrip 合并 6 鄢涛2011/5/18《.NET Windows programming 》 yantao@https://www.sodocs.net/doc/5313324901.html, Visual studio 2010

7鄢涛2011/5/18《.NET Windows programming 》 yantao@https://www.sodocs.net/doc/5313324901.html, Visual studio 2010

9 鄢涛2011/5/18《.NET Windows programming 》 yantao@https://www.sodocs.net/doc/5313324901.html, Visual studio 2010: ToolStripMenuItem 菜单项该类是一个ToolStripDropDownItem ,与ToolStripDropDownMenu 和ContextMenuStrip 一起工作,以便为菜单处理特殊的突出显示、布局和列排列方式。ToolStripMenuItem 类提供使您得以配置菜单项的外观和功能的属性。 10 鄢涛2011/5/18《.NET Windows programming 》 yantao@https://www.sodocs.net/doc/5313324901.html, Visual studio 2010 : ToolStripMenuItem 菜单项

03.CorelDraw的工具栏找不到啦!属性栏也没有啦!菜单不见啦!泊钨窗口不见啦……

Coreldraw系列问答:工具栏消失 2007-01-13 06:54 作者:木平原创出处:天极设计在线 问:CorelDraw的工具栏找不到啦!属性栏也没有啦!菜单不见啦!泊钨窗口不见啦…… 答:这个问题基本上是由于误操作引起的。有时候我们找不到工具栏,有时候属性栏不见了……但是我们在菜单 栏下方点鼠标右键,查看相关的选项,会发现其对应的项目前已经勾上。可为什么会没有呢? 这种情况基本上发生在新手身上,误操作将工具栏、属性栏等拖到屏幕以外的地方去了。其实它们都在,只是看不到罢了。 解决的方法很简单,只需重置Coreldraw默认选项即可。 方法是按住F8不放,双击桌面上的Coreldraw图标,提示是否要恢复到初始值,点确定即可。这个办法对解决工具栏,属性栏不见或移位等诸问题适用。 另外此方法可解决以下的类似问题: 1.可解决左边工具箱不见的问题 2.可解决右边色盘不见的问题 3.可解决复原和重做功能键不能使用的问题 4.可解决打开时出现,Menu Configuration File已毁损,使用预设设定来取代含有旧的格式,使用预设设定来取代,然后CD9就不能用了,移除重新安装,还是会出现一样的情况。 5.可解决左上角的地方("文件"的菜单旁边)会出现一个字"跪"的问题 6.可解决在属性列上改变一个矩形的尺寸、角度时,会生成新的图形的问题 7.可解决CorelDRAW开启时一直出现「试图越过其尾端对一未命名文件进行读写」的问题 8.可解决最上面菜单不见的问题 9.可解决CD在启动时出现未发现目录c:\program\corel\Graphics9\Scriprs.正在默认到桌面项的问题 10.可解决其它一些莫名奇妙的Coreldraw程序或菜单使用出错问题 F8键相当于Coreldraw中的一键还原,用好它可以省去很多麻烦。这个方法对COREL家族的软件都通用。 下一次我们解答Coreldraw版本兼容性的问题。

实验三,菜单,工具栏与状态栏应用

实验三、菜单、工具栏与状态栏应用 一、实验内容 设计一个应用程序,使用菜单实现运行界面大小的改变、透明度和背景颜色的改变;并使用工具按钮实现响应界面大小、颜色改变,使用上下文菜单实现界面大小的改变;使用状态栏实现界面大小的改变、透明度和背景颜色的改变的三种信息。 二、实验步骤 1、设计程序界面 新建一个C#.NET项目,向窗体中添加一个主菜单控件,并依次添加子菜单项,如图3-1所示;添加一个上下文菜单,实现调整窗体大小的功能,菜单项如图3-2所示;添加工具栏控件及按钮,状态栏及状态面板,以及用于图标显示的imageList1控件(图片由用户自己准备;.NET2005 版中不需要imageList1控件,直接在工具栏控件ToolStrip的Items属性集的Image属性中设置)。适当调整各控件的大小及位置。程序界面设计如图3-3所示(特别说明:以下所有图示是在2003版下完成的) 注意:不同C# 版本中的控件名及属性名、事件均有差别,详见下表: 图3-1 主菜单设计

图3-2 上下文菜单设计 图3-3 程序界面设计 2、设置对象属性 为了在工具按钮上显示图标,设置imageList1的Images图标,并设置工具栏toolBar1的ImageList 属性值为imageList1,为工具按钮“红色”、“绿色”、“兰色”、“黄色”、“紫色”分别设置ImageIndex 属性为0、1、2、3、4,以便显示图标。为状态栏设置3个状态面板,分别用于显示窗体大小、背景颜色以及透明度。其他控件的属性设置见图3-1、图3-2、图3-3。 3、编写事件代码 菜单“窗体”中子菜单项“大”有3种情况。实现窗体运行中显示为设计时窗体3倍的代码如下: private void menuItem15_Click(object sender, System.EventArgs e) { this.Size=new Size(900,600); menuItem15.Checked=true; // 设置选中状态为真 menuItem16.Checked=false; menuItem17.Checked=false; menuItem3.Checked=false; menuItem4.Checked=false; statusBarPanel1.Text="3倍大小"; // 在状态栏中显示窗体的大小} 实现窗体运行中显示为设计时窗体2倍的代码如下: private void menuItem16_Click(object sender, System.EventArgs e) { this.Size=new Size(600,400); menuItem15.Checked=false; menuItem16.Checked=true; menuItem17.Checked=false; menuItem3.Checked=false; menuItem4.Checked=false; statusBarPanel1.Text="2倍大小"; } 实现窗体运行中显示为设计时窗体1.5倍的代码如下: private void menuItem17_Click(object sender, System.EventArgs e) {

JAVA菜单和工具栏界面代码设计

实验八菜单和工具栏 import java.awt.*; import javax.swing.*; import java.awt.event.*; public class c extends JFrame{ private JMenuBar menuBar; private JMenu xtMenu,xyMenu,zyMenu,xsMenu,kcMenu,cjMenu,jsMenu;// private JMenuItem aItem,bItem,cItem,dItem;// private JMenuItem eItem,fItem,gItem,hItem; private JMenuItem iItem,jItem,kItem,lItem; private JMenuItem mItem,nItem,oItem,pItem; private JMenuItem qItem,rItem,sItem,tItem; private JMenuItem uItem,vItem,wItem,xItem; private JMenuItem yItem,zItem,aaItem,bbItem; public c(String account){ setTitle("学生管理系统"+"当前管理员为"+account); setSize(500,400); center(this);

setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); createMenu(); showToolBar(); setVisible(true); } //caidan public void createMenu(){ menuBar=new JMenuBar();//创建菜单栏 xtMenu=new JMenu("系统管理"); aItem=new JMenuItem("学院设置"); bItem=new JMenuItem("专业设置"); cItem=new JMenuItem("修改密码"); dItem=new JMenuItem("退出"); //dItem.setMnemonic('Q'); xtMenu.add(aItem); xtMenu.add(bItem); xtMenu.addSeparator(); xtMenu.add(cItem); xtMenu.addSeparator(); xtMenu.add(dItem);

【26-编辑菜单栏】什么是菜单栏和工具栏

【26-编辑菜单栏】什么是菜单栏和工具栏 编辑菜单栏“编辑”菜单“编辑”菜单中的一些命令主要是对文件进行编辑的,比如复制、粘贴、填充、描边等。“编辑”菜单是photoshop软件操作中最为常用的菜单之一。 1.“还原”命令这个命令用来将操作进行还原,它的快捷键是CTRL+Z,当时它只能还原一次,如果想要尽可能多地还原操作步骤,那么可以按CTRL+ALT+Z键。 2.“剪切”命令当画面中存在选框的时候,这个命令能将画面中选框中的部分进行裁切,下面我们通过一个练习来讲解。 一:打开这一张图片,然后用选区工具(M)选出一个选区。 二:选择编辑>剪切(CTRL+X),这样选框中的部分就被剪切掉了,如下图。 再选择编辑>粘贴(CTRL+V)就可以把剪切的部分粘贴到画面中。 3.“拷贝”和“粘贴”命令这两个命令基本上是组合来使用的,在画面中制作选框后,选择编辑>拷贝(CTRL+C)命令将其复制然后再选择编辑>粘贴(CTRL+V)将复制的部分粘贴到画面中。与前面的”剪切”命令不同的是,剪切后的图片在选框中的部分就没有了,

当时使用“拷贝”和“粘贴”命令后,原图片是完整的。所以大家要注意这两个的区别。 4.“填充”命令“填充”命令的功能与工具箱中的“油漆桶”工具基本相同,只不过它将一些主要的命令和选项集中在一起。如图:在下拉列表中可以选择很多选项,我们可以选择这些相应的选项来得到不同的效果,不过最为常用的就是前两个选项。其他的大家自己尝试吧。。。。 在“模式”下拉列表中我们可以选择填充的模式,这与前面讲过的混合模式是相同的。如“不透明度”用于改变填充颜色的透明程度。 5.“描边”命令描边命令用于对选框或者对象进行描边,下面通过一个实例来讲解下一:新建文件,然后使用矩形选框工具(M)在画面中做出选框。 二:选择编辑>描边命令,按照下图设置。 三:完成后得到如下效果。 6“自由变换”命令“自由变换”命令是我非常喜欢的一个命令,它灵活多变,用户可以完全地自行控制,做出任何变形。 自由变换:编辑——自由变换(快捷键:Ctrl+T)辅助功能键:Ctrl、Shift、Alt。 其中,Ctrl键控制自由变化;Shift控制方向、角度和等比例放大缩小;Alt键控制中心对称。

菜单及工具栏设计

菜单及工具栏设计 (总分:40.00,做题时间:90分钟) 一、{{B}}选择题{{/B}}(总题数:11,分数:22.00) 1.将一个预览成形的菜单存盘,再运行该菜单,却不能执行。这是因为______。 (分数:2.00) A.没有放到项目中 B.没有生成√ C.要用命令方式 D.要编程序 解析: 2.设计菜单要完成的最终操作是______。 (分数:2.00) A.创建主菜单及子菜单 B.指定各菜单任务 C.浏览菜单 D.生成菜单程序√ 解析: 3.为一个表单建立了快捷菜单,要打开这个菜单应当______。 (分数:2.00) A.用热键 B.用快捷键 C.用事件√ D.用菜单 解析: 4.如果不能预计频率,也无法确定逻辑顺序,则可以按字母顺序组织菜单项。当菜单中包含有______个以上的菜单项时,按字母顺序特别有效。 (分数:2.00) A.5 B.6 C.7 D.8 √ 解析: 5.要创建快速菜单,应当______。 (分数:2.00) A.用热键 B.用快捷键 C.用事件 D.用菜单√ 解析: 6.在菜单设计器中,要为某个菜单项定义一个快捷键,要在______定义。 (分数:2.00) A.菜单名称列 B.结果列 C.选项列√ D.菜单级 解析:

7.Visual FoxPro的系统菜单,其主菜单是一个______。 (分数:2.00) A.条形菜单√ B.弹出式菜单 C.下拉式菜单 D.组合菜单 解析: 8.使用菜单方法打开一个在当前目录下已经存在的查询文件zgik.qpr后,在命令窗口生成的命令是______。(分数:2.00) A.OPEN QUERYzgiqpr B.MODIFY QUERYzgiqpr √ C.DO QUERYzgiqpr D.CREATE QUERYzgiqpr 解析: 9.假设有菜单文件mainmu.mnx,下列说法正确的是______。 (分数:2.00) A.在命令窗口利用DO mainmu命令,可运行该菜单文件 B.首先在菜单生成器中,将该文件生成可执行的菜单文件mainmmpr,然后在命令窗口执行命令:DO mainmu 可运行该菜单文件 C.首先在菜单生成器中,将该文件生成可执行的菜单文件mainmmpr,然后在命令窗口执行命令:DOmainmmpr可运行该菜单文件 D.首先在菜单生成器中,将该文件生成可执行的菜单文件mainmmpr,然后在命令窗口执行命令:DO MEMU mainmu可运行该菜单文件√ 解析: 10.假设已经生成了名为mymenu的菜单文件,执行该菜单文件的命令是______。 (分数:2.00) A.DO mymenu B.DO mymenmpr √ C.DO mymenpjx D.DO mymenmax 解析: 11.使用Visual FoxPro的菜单设计器时,选中菜单项之后,如果要设计它的子菜单,应在 Result中选择______。 (分数:2.00) A.PadName B.Submenu √ https://www.sodocs.net/doc/5313324901.html,mand D.Procedure 解析: 二、{{B}}填空题{{/B}}(总题数:9,分数:18.00) 12.菜单设计器窗口中的 1组合框可用于上、下级菜单之间的切换。 (分数:2.00) 填空项1:__________________ (正确答案:菜单级) 解析: 13.创建SDI菜单的方法是,打开“菜单设计器”,从“显示”菜单中选择 1选项,并选择 2。 (分数:2.00) 填空项1:__________________ (正确答案:“常规选项”) 填空项1:__________________ (正确答案:“顶层表单”) 解析:

Excel 2007 与 Excel 2003 菜单工具栏比较

一.Excel 2007 与Excel 2003 菜单工具栏比较 相信很多人在刚接触到Excel 2007时,都有种无从下手的感觉,特别是原先在Excel 2003或以前的版本中熟悉的菜单和工具栏不见了,好多命令都不知道“隐藏”到哪儿去了。下面,我们对Excel 2003和Excel 2007进行比较,看看Excel2003中的菜单和工具栏在Excel2007中是如何组合的。 Excel 2003的基本界面 图1.1:Excel2003界面 如上图1.1所示,为大家很熟悉的Excel2003及以前版本的界面。 Excel 2007的界面 图1.2:Excel2007界面

Excel2007操作将功能进行逻辑分类,分别放在相应的“带形功能区”中,共分9类,即开始、插入、页面布局、公式、数据、审阅、视图、开发工具、加载项。每个功能区中又分成几块小的区域,分别集中相应的功能命令按钮。同时,一些命令按钮旁有下拉箭头,含有相关的功能选项。在区域的右下角,有扩展箭头可显示该区域功能的对话框。 下面将详细地进行比较 (1)Office按钮 这两项调到了07版的 【页面布局】 相当于03版的 [工具]->[选项] Office 07版Office按钮Office 03版文件选项 单击Office按钮,则显示与文件操作相关的命令,相当于以前版本中的“文件”菜单中的大多数内容,但变化还是比较大的,在新版本中移除了“页面设置”和“打印区域”,增加了“Excel选项”。 如果对方的版本过低又没安装补丁的话是开不打新版的文件的,我们可以在“另存为”里选择“Excel 97-2003工作簿”另存一个副本给他。 打印预览,在“打印里”,我们最好将“打印预览”和“快速打印”添加到快速访问工具栏里,这样方便我们工作。 设置访问密码有两个方法:1.在“准备”里的“加密文件”可以设置,但只可以设置访问密码,不能设置修改密码。 2. 在“另存为”界面“保存”旁边有一个“工具”按钮,点击“工具”按钮右边的小三角,在弹出菜单中选择“常规选 项”。这时我们就可以在“常规选项”中设置密码了。设置“打开权限密码”后,他人可以用这个密码阅读这个Excel文件。设置“修改权限密码”后,他人可以用这个密码打开和修改这个Excel文件。 一般我们发布的知通都以PDF文件格式发布,这时我们可以点击“发送”再选择“PDF电子邮件附件”。

工具,菜单,及工具栏

工具,菜单,及工具栏 Ps丶杰丨Forever Photo shop 工具箱中包含了用于创建和编辑图像、图稿、页面元素的工具和按钮。单击工具箱顶部的双箭头切换为单排和双排。 移动工具箱 默认的情况下,工具箱停放在窗口左侧。将光标放在工具箱顶部双箭头

右侧,可以将工具箱从停放中拖出,放在窗口的任意位置。 程序栏:可以调整photo shop窗口大小,将窗口最大化、最小化或关闭。还可以切换工作区,显示参考线,网络等。 菜单栏:菜单中可以执行各种命令。单击菜单名称即可打开相应的菜单。 标题栏:显示了文档名称、文件格式、窗口缩放比例和颜色模式等等。如果包含多个图层,则标题栏中还会显示当前工作的图层的名称。 图中的文档名称为鱼老大,格式为psd,缩放比例为33.3%,颜色模式为RGB。括号里面则为:我选择的图层。

工具箱:包含用于各种操作的工具,如创建选区,移动图像,绘画,绘图等 工具选项栏:用来设置工具的各种选项,它会随着所选工具的不同而变换内容。 魔棒工具选项栏 渐变工具选项栏 面板:可以帮助我们编辑图像。有的用来设置编辑内容,有的用来设置颜色属性。 状态栏:可以显示文档大小,文档尺寸,当前工具和窗口缩放比较等信息。 图中缩放比例为33.33%,文档尺寸为146.05毫米* 216.03毫米 文档窗口:是显示和编辑图像的区域。 选项卡:打开多个图像时,它们会最小化到选项卡中,单击各个文件的名称即到相应的文件。 在photo shop中打开一个图像时,便会创建一个文档窗口。如果打开了多个图像,则各个文档窗口会以选项卡的形式显示。 按下Ctrl+ Tab键,即可照前后顺序窗口切换。按下Ctrl+ Shift+ Tab键,可按照相反的顺序切换窗口。 单击一个标题栏将其从选项卡中拖出,它便成为可任意移动位置的浮动窗口。

WIN7中任务栏,菜单栏和工具栏的基本设置

WIN7中任务栏,菜单栏和工具栏的基本设置 WIN7的任务栏和XP的任务栏相比有很大的区别,下面我们就来看看WIN7中的变化。 WIN7的任务栏中没有了快速启动栏,这是因为WIN7中增加了一项新的功能,可以将桌面快捷方式附到任务栏,其方法很简单,只要将你想要附到任务栏的桌面快捷方式托到任务栏即可,如果要将其从任务栏移除则只要在选中后“右键”则会显示“解除任务栏锁定”,单击即可。 有些时候我们会发现有些朋友的电脑的任务栏显示在电脑的右面或者上面,也有一些同学的电脑的任务栏就没有,这是怎么设置的呢?在任务栏空白处右键,会看到下图

我们只要将“锁定任务栏”前的勾去掉,那么我们就可以将任务栏托动到电脑的上下左右了,如果要隐藏任务栏则将下面的“自动隐藏任务栏”前的勾给勾上就可,要显示任务栏时只要我们将鼠标移动到最下方就会再次显示。“屏幕上的任务栏位置”也可以设置任务栏的位置,在此就不多说了。

“在任务栏按钮”我们可以作一些设置,具体操作很简单,在此就省略了。 WIN7中新增了AERO PEEK预览功能,有些时候我们会发现我们在任务栏里面的“使用AERO PEEK功能”前面的勾我们也勾上了,可就是没法使用预览功能,这很可能是我们还有一个地方忘了设置。具体方法是“计算机——属性——高级系统设置——高级——性能——设置——视觉效果”

将启用AERO PEEK前的勾给勾上就可以了。 有些时候我们会发现我们电脑里面的开始菜单里面的一些程序或项目不见了(如有些电脑里的开始菜单没有运行项),这时候我们就要到“开始菜单”项里设置了,在开始菜单里我们单击“自定义”会看到下图

菜单与对话框

菜单与对话框 一、选择题 1.下列不能打开菜单编辑器的操作是_____。 A) 按Ctrl+E B) 单击工具栏中的“菜单编辑器”按钮 C) 执行“工具”菜单中的“菜单编辑器”命令 D) 按Shift+Alt+M 2.以下说法正确的是_____。 A) 任何时候都可以使用标准工具栏的“菜单编辑器“按钮打开菜单编辑器 B) 任何时候都可以使用“工具“菜单下的”菜单编辑器“命令打开菜单编辑器 C) 只有当某个窗体为当前活动窗体时,才能打开菜单编辑器 D) 只有当某个代码窗口为当前活动窗体时,才能打开菜单编辑器 3.假定有一个菜单项,名为MenuItem,为了在运行时该菜单项失效(变灰),应使用的语句为_____。 A) MenuItem.Enabled=False B) MenuItem.Enabled=True C) MenuItem.Visible=True D) MenuItem.Visible=False 4. 在下列关于菜单的说法中,错误的是_____。 A) 每一个菜单项都是一个控件,与其他控件一样都有自己的属性和事件 B) 除了Click事件之外,菜单项还能响应其他的如 DblClick等事件过程 C) 菜单项的快捷键不可以任意设置 D) 在程序执行时,如果菜单项的Enabled属性为False,则该菜单项变成灰色,不能 被用户选择 5. 以下叙述中错误的是_____。 A) 在同一窗体的菜单项中,不允许出现标题相同的菜单项 B) 在菜单的标题栏中,“&”所引导的字母指明了访问该菜单项的访问键 C) 程序运行过程中,可以重新设置菜单的Visible属性 D) 弹出式菜单也在菜单编辑器中定义 6. 如果要在程序中显示一个弹出式菜单,那么要调用Visual Basic中提供的方法_____。 A)Print B)Move C)Refresh D)PopupMenu 7. 假设在菜单编辑器中定义了一个菜单项,名为Menu1。为了在运行时隐藏该菜单项,应使用的语句是_____。 A) Menu1.Enabled=True B) Menu1.Enabled=False C) Menu1.Visible=True D) Menu1.Visible=False 8.如果要向工具箱中加入控件和部件,可以利用“工程”的菜单中的_____命令。 A) 引用 B) 部件 C) 工程属性 D) 添加窗体 https://www.sodocs.net/doc/5313324901.html,monDialog控件可以显示_____对话框。 A)4种 B)5种 C)6种 D)7种 10. 以下叙述中错误的是_____。 A) 在程序运行时,通用对话框控件是不可见的 B) 在同一个程序中,用不同的方法(如ShowOpen或ShowSave等)打开的通用对话框具有不同的作用 C) 调用通用对话框控件的ShowOpen方法,可以直接打开在该通用对话框中指定的文件

VC对话框程序添加目录菜单、工具条和状态栏

一、引言 对于不需要文档/视图结构支持的程序一般都采用对话框做为程序的基础框架。虽然在对话框程序上可以通过修改其属性来添加系统菜单,但对比SDI和MDI程序的工具条和状态栏未免使界面显得简单、单调。虽然在V isual Basic 中提供有独立的工具条和状态栏标准控件可以直接在对话框上使用,但V isual C++ 6.0所提供的26种基本Windows标准控件却没有将它们包含其中。因此要在对话框程序中实现工具条和状态栏只能通过编程来动态实现。 二、工具条的实现过程 MFC对于工具条和状态栏分别提供了CToolBar和CStatusBar两个基本类库,但由于在实现时MFC 对其做了过多的封装,以至无法了解内部的一些核心技术。因此本文在实现过程中放弃了相对比较方便的CToolBar和CStatusBar类的使用,而是通过SDK(Software Developers Kit,软件开发工具箱)式的WinAPI 应用程序接口来实现的。在API函数中经常需要用到对话框的窗口句柄和当前的实例句柄,在SDK程序设计中以上两个句柄可以直接从入口函数WinMain()中引出,而在MFC下也对其做了封装,不能直接获取。但MFC也为其留有接口:CWnd窗口类提供的GetSafeHwnd()可以返回对话框的窗口句柄;函数AfxGetInstanceHandle()则可以获取当前应用程序的实例句柄。由于对话框和状态栏属于程序界面的一部分,需要程序启动时就显示出来,因此获取句柄的代码和后面创建显示工具条、状态栏的全部代码都应当放在对话框初始化消息WM_INITDIALOG的响应函数OnInitDialog()中进行: HWND hDlg=GetSafeHwnd(); HINSTANCE hInstance=AfxGetInstanceHandle(); 对于待添加的工具条按钮可以根据情况细分为两种: 一种是Windows标准的一些工具条按钮比如打开文件、打印预览、在线帮助等等,这类工具条按钮可以直接使用预定义好的按钮图标的ID号,在VC自带的CommCtrl.h头文件中有详细定义; 另一种就是用户自己添加的工具栏按钮,只能由用户在资源视图中为其指定相应的图标。不论是那种工具条按钮的创建都是通过对TBBUTTON结构的设置来决定每一个工具条按钮的状态,对于第一个填充好的工具条按钮可以用CreateToolbarEx()来直接将其加入到工具条上,并返回指向工具条的窗口句柄,而对于以后工具条按钮的添加则只能通过向工具条发送TB_ADDBUTTONS消息来实现: …… //填充工具条按钮结构: TBBUTTON ptoolbar[30]={{STD_HELP, //指定Windows的标准帮助图标 MU_ONE, //工具条按钮的ID TBSTA TE_ENABLED, //可用状态 TBSTYLE_BUTTON, //指定创建一个可以下按的按钮 0, //保留,由应用程序定义该参数意义 0}, //按钮字串索引 //创建一个分割按钮用的竖线 {0,0,TBSTA TE_ENABLED,TBSTYLE_SEP,0,0}};

菜单与对话框

菜单与对话框 (总分:34.00,做题时间:90分钟) 一、{{B}}选择题{{/B}}(总题数:13,分数:26.00) 1.如果设置了通用对话框的以下属性:DefaultExt="doc" FileName="c:/file1.txt",Filter= "应用程序|*.exe”,则显示“打开”对话框式,在“文件类型”下拉列表中的默认文件类型是 ______ 。 (分数:2.00) A.应用程序(*.ex √ B.*.doc C.*.txt D.不确定 解析: 2.以下叙述中错误的是______ 。 (分数:2.00) A.在同一窗体的菜单项中,不允许出现Name 属性相同的菜单项√ B.在菜单的标题栏中,“&”所引导的字母指明了访问该菜单项的访问键 C.程序运行过程中,可以重新设置菜单的Visible 属性 D.同一个窗体中的所有弹出式菜单都在同一个菜单编辑器中定义 解析: 3.假定已经在菜单编辑器中建立了窗体的弹出式菜单,其顶级菜单的名称为a1,其“可见”属性为False,则程序运行后,可以同时响应鼠标左键单击和右键单击的事件过程是 ______ 。 (分数:2.00) A.Private Sub Form_ MouseDown (Button As Integer, _ Shift As Integer, X As Single, Y As Singl If Button = 1 And Button = 2 Then PopupMenu al End If End Sub B.Private Sub Form_ MouseDown (Button As Integer, _ Shift As Integer, X As Single, Y As Singl PopupMenu a1 End Sub √ C.Private Sub Form_ MouseDown (Button As Integer, _ Shift As Integer, X As Single, Y As Singl If Button = 1 Then PopupMenu a 1 End If End Sub D.Private Sub Form_ MouseDown(Button As Integer, _ Shift As Integer, X As Single, Y As Singl If Button = 2 Then PopupMenu a 1 End If End Sub 解析: 4.在窗体上画一个通用对话框,其名称为CommonDialog1,然后画一个名为Command1的命令按钮,并编写如下事件过程: Private Sub Command1_ Click() CommonDialog1. Flags= cd10FNHideReadOnly CommonDialog1. Filter= "All Files (*.*) |*.*|Text File" & _ "(*.txt) |*.txt | Batch Files (*.bat)| *.bat" CommonDialog1. FilterIndex = 2 CommonDialog1. ShowOpen MsgBox CommonDialog1. FileName End Sub程序运行后,单击命令按钮,将显示一个“打开”对话框,此时在“文件类型”框中显示的是______ 。 (分数:2.00) A.All Files (*.*) B.Text Files(*.tx √ C.Batch Files (*.ba D.不确定 解析: 5.如果要在菜单中添加一个分隔线,则应将其Caption 属性设置为______ 。 (分数:2.00) A.= B.* C.&

Matlab GUI 菜单和工具栏常用操作

Matlab GUI 常用操作 菜单 1.编辑菜单 打开GUIDE,选择工具栏上面的菜单编辑按钮 2.添加菜单回调函数(callback) 菜单编辑完成保存后,在fig对应的m文件中会自动生成菜单的回调函数声明例如菜单tag名为menuFilePrint,则对应的callback函数为: function menuFilePrint_Callback(hObject, eventdata, handles) 可以在该函数内添加代码实现功能。 3.菜单项访问 获取菜单句柄 在matlab的函数中要对某个菜单进行访问,必须获得该菜单的句柄。 如果是在菜单的回调函数里面,hObject就是该菜单的句柄;

如果是在其他的函数里面要获得某一菜单的句柄,比如选中工具栏上的ZoomIn按钮,按钮处于被按下状态,同时要设置对应菜单项view->Zoom-Zoom In 为选中状态,如下图: 这里要在按钮“ZoomIn”的callback函数里面实现对菜单menuViewZoomIn的状态设置。首先得获得菜单的句柄: % first we must get the handle of menuZoomIn hFigChildren = allchild(gcf); % menuView handle hMenuView = findobj(hFigChildren,'Tag','menuView'); hvc = allchild(hMenuView); % menuViewZoom hViewZoom = findobj(hvc,'Tag','menuViewZoom'); hvzc = allchild(hViewZoom); %menuZoomIn handle hZoomIn = findobj(hvzc,'Tag', 'menuZoomIn'); 获取设置菜单状态 得到菜单的句柄后就可以得到菜单当前的状态了: if strcmp(get(hZoomIn, 'Checked'),'on') set(hZoomIn, 'Checked', 'off'); else set(hZoomIn, 'Checked', 'on'); end

什么是菜单、栏工具栏、标题栏

什么是工具栏,什么是菜单栏、什么是标题栏? 回答1、 菜单栏就是窗口最上方,标题栏下方的那部分,通常有“文件,编辑,查看,工具,帮助”等选项。 工具栏一般在菜单栏下方,通常有“前进,后退”等按钮。 回答2、 最上面的是标题栏,下面就是菜单栏,再下面就是工具栏 回答3、 菜单栏就是标题栏下面的一栏,有文件,编辑,查看,工具,帮助等等, 工具栏就菜单栏下面的所有栏目的统称.像前进,后退,主页.刷新等 标题栏就是整个窗口最上面的一栏,上面的标题说明当前窗口是什么位置 菜单栏和工具栏是什么区别 (菜单栏是应用程序里所有功能的集大成,非常丰富。可是要使用菜单栏里的功能,您通常得点好多下鼠标。为了方便用户,就把最常用的功能放在工具栏里。工具栏里通常都是图形按钮,图形按钮使用起来很方便,点一下鼠标就可以了。

小结: 在功能上,工具栏其实是菜单栏的子集、包含菜单栏里最常用的功能;在使用方式上,工具栏比菜单栏方便,点一下鼠标就行

仅供个人用于学习、研究;不得用于商业用途。 For personal use only in study and research; not for commercial use. Nur für den pers?nlichen für Studien, Forschung, zu kommerziellen Zwecken verwendet werden. Pour l 'étude et la recherche uniquement à des fins personnelles; pas à des fins commerciales. толькодля людей, которые используются для обучения, исследований и не должны использоваться в коммерческих целях. 以下无正文

为对话框增加菜单

为对话框增加菜单 1.为对话框创建一个菜单资源IDR_MENU1。 2. 在对话框的属性对话框中在Menu属性中选择刚创建的菜单资源IDR_MENU1。此时保存编译后,在对话框中就可看到菜单。 3.点击快捷键Ctrl + W,在“Add a Class”对话框中选择已存在的对话框类“Select an existing class”,打开“Select Class”对话框。

4. 选择对话框类,本例中的类名为CDlgDlg,选中进入下一步。 5. 进入MFC ClassWizard对话框,在消息映射属性页中,为菜单增加消息处理函数,本例中为“打开文件”菜单增加COMMAND处理函数,增加的函数名为 OnFileOpen。

6.编辑OnFileOpen函数代码,实现自己定义的功能,本例只是简单显示“关于”对话框。 void CDlgDlg::OnFileOpen() { CAboutDlg dlgAbout; dlgAbout.DoModal(); } 编译运行后,点击文件菜单的子菜单“打开文件”,将弹出“关于”对话框,如 下图所示。

接下来为对话框添加右键菜单。 1.为对话框增加事件 2.在打开的对话框中,在左侧的消息/事件列表中选择WM_CONTEXTMENU,添加OnContextMenu函数。

3. 编辑代码如下。 void CDlgDlg::OnContextMenu(CWnd* pWnd, CPoint point) { CMenu MyMenu; MyMenu.LoadMenu(IDR_MENU1); CMenu* pMyMenu=MyMenu.GetSubMenu(0); pMyMenu->TrackPopupMenu(TPM_LEFTBUTTON|TPM_LEFTALIGN,point.x ,point.y,this); MyMenu.DestroyMenu(); } 显示效果:

四、菜单及对话框习题

四、菜单及对话框习题 一、选择题 1. 多窗体程序是由多个窗体组成。在缺省情况下,VB在应用程序执行时,总是把() 指定为启动窗体。 (A)不包含任何控件的窗体(B)设计时的第一个窗体 (C)包含控件最多的窗体(D)命名为Form1的窗体 2. 刚建立一个新的标准工程后,不在工具箱中出现的控件是()。 (A)单选按钮(B)图片框(C)通用对话框(D)文本框 3. 在用菜单编辑器设计菜单时,必须输入的项是()。 (A)快捷键(B)标题(C)索引(D)名称 4. 在下列关于菜单的说法中,错误的是()。 (A)每个菜单项都是一个控件,与其它控件一样,也有自己的属性和事件 (B)除了Click事件之外,菜单项还能响应其他如DblClick等事件 (C)菜单项的快捷键不能任意设置 (D)在程序执行时,如果菜单项的Enabled属性为False,则该菜单项变成灰色,不能被用户选择 5. 在下列关于通用对话框的叙述中,错误的是()。 (A)CommonDialog1.ShowFont显示字体对话框 (B)在文件打开或另存为对话框中,用户选择的文件名可以经FileTitle属性返回 (C)在文件打开或另存为对话框中,用户选择的文件名及路径可以经FileName属性返回 (D)通用对话框可以用来制作和显示帮助对话框 6. 以下正确的语句是()。 (A)CommonDialog1.Filter=All Files|*.*|Pictures(*.Bmp)|*.Bmp (B)CommonDialog1.Filter=”All Files”|”*.*”|”Pictures(*.Bmp)”|”*.Bmp (C)CommonDialog1.Filter=”All Files|*.*|Pictures(*.Bmp)|*.Bmp” (D)CommonDialog1.Filter={All Files|*.*|Pictures(*.Bmp)|*.Bmp} 7. 在窗体从内存卸载的过程中会发生许多事件,这些事件发生的顺序是()(其 中Terminate事件在窗体及对象的所有引用都被从内存删除后发生)。 (A)Terminate,QueryUnload,Unload (B)QueryUnload,Unload,Terminate (C)QueryUnload,Terminate,Unload (D)Unload,QueryUnload,Terminate 8. 在下面关于窗体事件的叙述中,错误的是()。 (A)在窗体的整个生命周期中,Initialize事件只触发一次 (B)在用Show显示窗体时,不一定发生Load事件 (C)每当窗体需要重画时,肯定会触发Paint事件 (D)Resize事件是在窗体的大小有所改变时被触发 9. 关于多重窗体的叙述中,正确的是()。 (A)作为启动对象的Main子过程只能放在窗体模块内 (B)如果启动对象是Main子过程,则程序启动时不加载任何窗体,以后由该过程根据不同情况决定是否加载或加载哪一个窗体 (C)没有启动窗体,程序不能执行 (D)以上都不对 10. 如果Form1是启动窗体,并且Form1的Load事件过程中有Form2.show,则程序启动 后()。 (A)发生一个运行错误(B)发生一个编译错误 (C)在所有的初始化代码运行后Form1是活动窗体 (D)在所有的初始化代码运行后Form2是活动窗体 11. 当用户将焦点移到另一个应用程序时,当前应用程序的活动窗体将()。 (A)发生DeActivate事件(B)发生DeActivate和LostFocus事件

相关主题