C++ Builder 初学问与答 (十)

2016-02-19 20:22 10 1 收藏

下面是个C++ Builder 初学问与答 (十)教程,撑握了其技术要点,学起来就简单多了。赶紧跟着图老师小编一起来看看吧!

【 tulaoshi.com - 编程语言 】

10.菜单组件
  77)问:菜单是Windows常用的用户界面。对于一个能够实际应用的程序,菜单是必不可少的组成部分。C++Builder中是怎样实现菜单的?  答:C++Builder为我们提供了两种菜单组件:一种是主菜单组件MainMenu;另一种是弹出菜单PopMenu组件。 !-- frame contents -- !-- /frame contents --   主菜单组件的作用是在窗体上生成菜单条。菜单组件刚放到窗体上时,菜单是不可见的,当双击它打开菜单编辑器并且增加了菜单项后,菜单条才出现在窗体的顶部。设计时的菜单条与运行时的菜单条完全一样。  下面我们介绍利用菜单编辑器进行菜单设计的过程。  首先要打开菜单编辑器  从组件模板上的Standard选项卡中选择MainMenu组件,放置到窗体上。然后,用鼠标右键单击菜单组件,然后在弹出菜单中选择Menu Designer。当然,你也可以双击菜单组件打开菜单编辑器。  被加亮显示的小方框就是一个空白菜单项。  接着要添加菜单项  选中这个菜单项,这时对象编辑器中将出现这个菜单项的属性。  我们在菜单项的Caption属性中输入“文件(&File)”,其中“&F”可以生成一个快捷键,这样用户就可以通过键盘操作了,并且F下面出现了下划线(注重:由于是系统原因,”&”一定要在英文状态下输入)。当我们输入完标题并按下回车键时,C++Buildr会自动给这个菜单项赋一个名字,这里的名字是N1。假如你不满足这个名字可以修改Name属性。  添加完菜单项后会自动出现一个空白的子菜单项等待你输入。  现在菜单编辑器中的输入焦点移到了这个空白子菜单项上,同时对象编辑器将对应显示这个子菜单项的属性。你可以在Caption属性中输入子菜单项的标题“打开(&Open)”,然后按下回车键。菜单编辑器会打开一个新的子菜单项,并把输入焦点移动到这个子菜单项上。这样,就可以给菜单项增加一系列的子菜单了。  同样方法添加退出菜单。  要开始编辑下一个菜单项,可以用鼠标单击菜单项“文件”的右边的虚线框,它表示一个空白的菜单项。
  
  

   更多内容请看C/C++技术专题专题,或   78)问:当菜单项中的子菜单项属于不同类别时,有必要用分隔条把子菜单项进行分组,菜单组件是怎样实现这个功能的? !-- frame contents -- !-- /frame contents --   答:我们在退出和保存两个菜单项中间加入选择分隔条,在退出菜单项上点击鼠标右键,从弹出菜单中选择Insert,这时,一个空白的菜单项就插入了,将它的Caption属性设置为“–”这个减号符就可以了。  79)问:那么,我们又怎样给菜单项设置热键呢?  答:每个菜单项都有一个属性ShortCut,利用这个属性就可以给这个菜单项设置热键了。现在我们给打开文件菜单项添加热键。单击这个菜单项,选择属性ShortCut,出现一个下拉菜单,其中包括一系列的热键的组合。选择Ctrl+O,这个热键中就被赋给了退出菜单项。  80)问:快捷键与热键这两个概念我已经弄糊涂了,您能给我解释一下吗?  答:好的,快捷键与热键相同的方面是,它们都是通过键盘来访问。  一个菜单项可以同时拥有快捷键和热键。所谓快捷键通常只是一个字母,而热键通常是一个组合键。另外它们的激活方式不一样,例如一个子菜单项有一个快捷键O和一个热键Ctrl+O,那么使用热键就可以直接激活这个子菜单项,而使用快捷键你必须首先选中该子菜单项上一层的菜单项,然后按下快捷键才可以激活这个子菜单项。  81)问:您讲解的菜单到现在还只有菜单项和子菜单两级,假如我希望子菜单还有自己的子菜单,应该怎么办?  答:这种嵌套的菜单项实际上就是级联菜单。这里,我们给颜色菜单项添加子菜单项,选择颜色菜单,单击鼠标右键,在弹出的快捷菜单中选择Create Submenu命令,这时在子菜单项中将出现一个指向右的箭头,同时还产生了一个级联菜单。  当然,你也可以用Ctrl+方向键右键。  82)问:很多菜单项的旁边有复选标记,请问菜单编辑器是否提供了这个功能呢?  答:复选标记就是在菜单项的标题的前面出现的勾号。复选标记经常用于一些状态设置的菜单项,当处于该状态时就会出现复选标记,否则复选标记消失。  现在,我们给回绕菜单项设置复选标记,在对象编辑器中把它的属性Checked改为True,这样这个菜单项就会显示复选标记。要取消复选标记可以把Checked属性再次设置为False。
  
  
  
  

   更多内容请看C/C++技术专题专题,或   83)问:我有时要设计一组互相排斥的菜单项,也就是单选菜单项,应该怎么办呢?  答:要使一组菜单项成为单选菜单项,必须满足几个条件。  首先,这一组菜单必须在同一个下拉菜单中。  其次,它们的RadioItem属性必须都设置成了True。 !-- frame contents -- !-- /frame contents --   最后,它们的GroupIndex属性必须相同。  这一组中唯一被选中的菜单项的前面将会显示一个圆点标记。  84)问:我怎样使菜单项失效呢?  答:只要把菜单项的Enabled属性设置为False,就可以使菜单项失效,这时菜单项是灰色的。在设计时和运行时你可以任意设置菜单项的Enabled属性。  85)问:菜单项有些什么常用的事件呢?  答:菜单项只有一种事件OnClick,在实际编辑中这个事件是一定要响应的。  86)问:我们一般在主菜单之外还会提供一个快捷菜单,就像C++Builder一样,在窗体中单击右键随时都可以打开一个弹出菜单。C++Builder是怎样实现弹出菜单的?  答:弹出菜单有时候又称为快捷菜单。弹出菜单与主菜单的区别是:主菜单是固定的,而弹出菜单是活动的;主菜单有多组菜单项,而弹出菜单只有一组。弹出菜单的设计方法与主菜单基本相同,也是使用菜单编辑器来完成的。 
  
  
  
  

   更多内容请看C/C++技术专题专题,或

来源:http://www.tulaoshi.com/n/20160219/1623480.html

延伸阅读
3. 按钮类组件 21)问:在进行Windows程序界面设计中,经常会用到按钮,在C++Builder中,按钮一定是通过按钮组件来实现的吗? !-- frame contents -- !-- /frame contents -- 答:是的,并且C++Builder的按钮类组件十分丰富。BCB提供了两类按钮类组件:一类是执行类按钮,另一类是信息类按钮。所谓执行类按钮是指...
11.工具条组件 87)问:工具条是Windows编程经常要用的, C++Builder能不能实现这个功能呢? !-- frame contents -- !-- /frame contents -- 答:当然可以,工具条是由许多具有图形的按钮组成的,这些按钮被分隔符分隔成许多组,每个组都能够完成特定的工作。工具条上的按钮具有与位图按钮相似的特性——可以拥有多个位图,...
16.C/C++语言在CB中的一些特定用法 2)AnsiString是从Delphi中引进来的吗? !-- frame contents -- !-- /frame contents -- 答:CB的核心组件VCL是用Object Pascal语言写出的,所以CB的VCL组件的属性有很多都是使用long string,例如:Text、 Name、Caption等属性都是使用Object Pascal的long string。基于此关系,CB只...
第二部分:快速提高 !-- frame contents -- !-- /frame contents -- 好久以来有不少朋友问我,《C++ Builder问与答》为什么不继续写了?我也一直在思考还应该写下去不?CBX的推出,加之宝兰公布不在出新的CB版本,让我们这些一直喜爱CB的人不清楚下一个方向到底在何处?当然真的希望CB会继续,而不要倒下,但对于...
53)问:能介绍一下TTreeNodes与TTreeNode? 答:在BCB中,树状视图的节点是通过TTreeNodes对象来治理的,通过这个对象可以对树状视图进行动态的增加、删除、插入、移动节点等操作。而每一个节点都是一个TTreeNode对象。 TTreeNode的主要属性和函数: !-- frame contents -- !-- /frame contents -- Count:这个属性用来...

经验教程

209

收藏

46
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部