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

C++ Builder 初学问与答(二十) 作者:董维春 网名:ch_builder(版权要求:请务必尊重知识产权,未经授权不要转载、摘录)17 事件及事件响应16)问:从前面的编程过程可以看出,用C++Builder开发应用程序的一个特点是,大部分的编程工作是在响应事件和处理事件上。事件的产生可能来自于系统,也可能来自于用户。您能给我详细介绍一下事件吗?答:好的,这节课我们将对事件进行深入地探讨,并重点讲述常用的鼠标和 阅读详情

10.菜单组件

77)问:菜单是Windows常用的用户界面。对于一个能够实际应用的程序,菜单是必不可少的组成部分。C++Builder中是怎样实现菜单的?

 

答:C++Builder为我们提供了两种菜单组件:一种是主菜单组件MainMenu;另一种是弹出菜单PopMenu组件。

主菜单组件的作用是在窗体上生成菜单条。菜单组件刚放到窗体上时,菜单是不可见的,当双击它打开菜单编辑器并且增加了菜单项后,菜单条才出现在窗体的顶部。设计时的菜单条与运行时的菜单条完全一样。

下面我们介绍利用菜单编辑器进行菜单设计的过程。

首先要打开菜单编辑器

从组件模板上的Standard选项卡中选择MainMenu组件,放置到窗体上。然后,用鼠标右键单击菜单组件,然后在弹出菜单中选择Menu Designer。当然,你也可以双击菜单组件打开菜单编辑器。

被加亮显示的小方框就是一个空白菜单项。

接着要添加菜单项

选中这个菜单项,这时对象编辑器中将出现这个菜单项的属性。

我们在菜单项的Caption属性中输入“文件(&File)”,其中“&F”可以生成一个快捷键,这样用户就可以通过键盘操作了,并且F下面出现了下划线(注意:由于是系统原因,”&”一定要在英文状态下输入)。当我们输入完标题并按下回车键时,C++Buildr会自动给这个菜单项赋一个名字,这里的名字是N1。如果你不满意这个名字可以修改Name属性。

添加完菜单项后会自动出现一个空白的子菜单项等待你输入。

现在菜单编辑器中的输入焦点移到了这个空白子菜单项上,同时对象编辑器将对应显示这个子菜单项的属性。你可以在Caption属性中输入子菜单项的标题“打开(&Open)”,然后按下回车键。菜单编辑器会打开一个新的子菜单项,并把输入焦点移动到这个子菜单项上。这样,就可以给菜单项增加一系列的子菜单了。

同样方法添加退出菜单。

 

要开始编辑下一个菜单项,可以用鼠标单击菜单项“文件”的右边的虚线框,它表示一个空白的菜单项。

 

78)问:当菜单项中的子菜单项属于不同类别时,有必要用分隔条把子菜单项进行分组,菜单组件是怎样实现这个功能的?

答:我们在退出和保存两个菜单项中间加入选择分隔条,在退出菜单项上点击鼠标右键,从弹出菜单中选择Insert,这时,一个空白的菜单项就插入了,将它的Caption属性设置为“–”这个减号符就可以了。

 

79)问:那么,我们又怎样给菜单项设置热键呢?

答:每个菜单项都有一个属性ShortCut,利用这个属性就可以给这个菜单项设置热键了。现在我们给打开文件菜单项添加热键。单击这个菜单项,选择属性ShortCut,出现一个下拉菜单,其中包括一系列的热键的组合。选择Ctrl+O,这个热键中就被赋给了退出菜单项。

 

80)问:快捷键与热键这两个概念我已经弄糊涂了,您能给我解释一下吗?

答:好的,快捷键与热键相同的方面是,它们都是通过键盘来访问。

一个菜单项可以同时拥有快捷键和热键。所谓快捷键通常只是一个字母,而热键通常是一个组合键。另外它们的激活方式不一样,例如一个子菜单项有一个快捷键O和一个热键Ctrl+O,那么使用热键就可以直接激活这个子菜单项,而使用快捷键你必须首先选中该子菜单项上一层的菜单项,然后按下快捷键才可以激活这个子菜单项。

 

81)问:您讲解的菜单到现在还只有菜单项和子菜单两级,如果我希望子菜单还有自己的子菜单,应该怎么办?

答:这种嵌套的菜单项实际上就是级联菜单。这里,我们给颜色菜单项添加子菜单项,选择颜色菜单,单击鼠标右键,在弹出的快捷菜单中选择Create Submenu命令,这时在子菜单项中将出现一个指向右的箭头,同时还产生了一个级联菜单。

当然,你也可以用Ctrl+方向键右键。

 

82)问:很多菜单项的旁边有复选标记,请问菜单编辑器是否提供了这个功能呢?

答:复选标记就是在菜单项的标题的前面出现的勾号。复选标记经常用于一些状态设置的菜单项,当处于该状态时就会出现复选标记,否则复选标记消失。

现在,我们给回绕菜单项设置复选标记,在对象编辑器中把它的属性Checked改为True,这样这个菜单项就会显示复选标记。要取消复选标记可以把Checked属性再次设置为False。

 

83)问:我有时要设计一组互相排斥的菜单项,也就是单选菜单项,应该怎么办呢?

答:要使一组菜单项成为单选菜单项,必须满足几个条件。

首先,这一组菜单必须在同一个下拉菜单中。

其次,它们的RadioItem属性必须都设置成了True。

最后,它们的GroupIndex属性必须相同。

这一组中唯一被选中的菜单项的前面将会显示一个圆点标记。

 

84)问:我怎样使菜单项失效呢?

答:只要把菜单项的Enabled属性设置为False,就可以使菜单项失效,这时菜单项是灰色的。在设计时和运行时你可以任意设置菜单项的Enabled属性。

 

85)问:菜单项有些什么常用的事件呢?

答:菜单项只有一种事件OnClick,在实际编辑中这个事件是一定要响应的。

 

86)问:我们一般在主菜单之外还会提供一个快捷菜单,就像C++Builder一样,在窗体中单击右键随时都可以打开一个弹出菜单。C++Builder是怎样实现弹出菜单的?

    答:弹出菜单有时候又称为快捷菜单。弹出菜单与主菜单的区别是:主菜单是固定的,而弹出菜单是活动的;主菜单有多组菜单项,而弹出菜单只有一组。弹出菜单的设计方法与主菜单基本相同,也是使用菜单编辑器来完成的。
C++ Builder 初学问与答(十三) C++ Builder初学问与答(版权要求:本文仅授权优快云使用,另授权CCRUN转载,其他个人与网站不得转载、摘录,若有特别需求可与作者联系)第二部分:快速提高好久以来有不少朋友问我,《C++ Builder问与答》为什么不继续写了?我也一直在思考还应该写下去不?CBX的推出,加之宝兰宣布不在出新的CB版本,让我们这些一直喜爱CB的人不清楚下一个方向到底在何处?当然真的希望CB会继 阅读详情

相关推荐

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

(版权要求:本文仅授权优快云使用,另授权CCRUN转载,其他个人与网站不得转载、摘录,若有特别需求可与作者联系) (4)利用C++Builder集成开发环境中的视图“View”菜单,我们可以显示或隐藏C++Builder集成开发环境中的不同的部分,也可以用于打开属于集成调试器的窗口。 “Project Manager”菜单项用于显示工程管理器。“Object Insp

ch_builder的专栏 2597

在BCB中把主菜单放到工具栏里后,实现自定义快捷键的方法

          如果做过“把主菜单放到工具栏里”的兄弟们都会发现一个问题:那就是系统会自动给菜单选项加上热键(如果你的菜单选项是英文,那么会在第一个字母下加横线,如果你的菜单选项是中文,那么会在菜单选项的后面加上类似(Y)、(Z)的快捷键),而使你自己定义的快捷键失效!(注:我后来发现,如果自己加的是类似(H)的快捷键时,就不会出现这样的问题。而只有当我们加的是类似Ctrl+A,F1,Ct

密码开发者 2454

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

2.文本输入组件11)问:如果要实现文本输入,在C++Builder中应该怎么办?答:C++Builder常用文本输入组件来实现,常用的文本输入组件有Edit、MaskEdit 、Memo和RichEdit。他们的主要不同在于Edit和MaskEdit用于输入单行文本,而Memo和RichEdit可以输入多行文本。此外Label组件也可用来进行文本显示。Edit和MaskEdit是一个

ch_builder的专栏 2705

]许多代码段,没准儿有你需要的 C++ Builder

[code:1:d5dc046d55] 1.怎样在C++Builder中创建使用DLL 2.用C++Bulider在WIN.INI中保存信息 3.如何在C++Builder中检测硬件 4.C++Builder如何响应消息及自定义消息 5.利用C++ Builder开发动画DLL 6.用C++ Builder 3制作屏幕保护程序 7.TCP/IP头格式 8.UDP 9.判断windows的Deskt

Stiwin Lee's Favorite 1万+

功能安全入门:手把手教你用IEC 62380标准计算芯片失效率(附SN 29500对比)

本文深入解析了IEC 62380标准在芯片失效率计算中的应用,对比了SN 29500的差异,并提供了实战案例和避坑指南。通过详细的参数获取方法和分步计算演示,帮助功能安全工程师准确评估芯片可靠性,确保设计符合安全要求。特别适合汽车电子和工业控制领域的专业人士参考。

weixin_30363981的博客 320

从原理到实践:详解双目散斑结构光的生成与优化

本文深入解析了双目散斑结构光的生成原理与优化实践,详细介绍了散斑结构光的抗干扰性、空间编码技术及其在三维视觉中的应用。通过对比不同生成方法和技术路线,提供了参数调优指南和工程实现细节,帮助开发者掌握高效、精准的散斑生成技术。

weixin_42521856的博客 596

Borland C++Builder 5.0教程(5)

设计菜单之二――功能按钮菜单  Windows下的程序的菜单大致可以分成两大类:第一类是下拉式的菜单,如主菜单(MainMenu)和右键菜单(PopMenu);第二类是功能按钮菜单,如工具菜单(ToolMenu)。和菜单一样,功能按钮菜单已经成为Windows应用程序地一个标准配置,使用它可以进一步增强应用程序的菜单界面,一般来说,功能按钮菜单和下来菜单密不可分。功能按钮菜单中含有功能按钮,功能是

1190

Java全栈AI视频生成开发实战:从DeepSeek接入到剪映自动化(附完整源码)

【代码】Java全栈AI视频生成开发实战:从DeepSeek接入到剪映自动化(附完整源码)

weixin_39169967的博客 4150

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

  10.菜单组件  77)问:菜单是Windows常用的用户界面。对于一个能够实际应用的程序,菜单是必不可少的组成部分。C++Builder中是怎样实现菜单的? 答:C++Builder为我们提供了两种菜单组件:一种是主菜单组件MainMenu;另一种是弹出菜单PopMenu组件。  主菜单组件的作用是在窗体上生成菜单条。菜单组件刚放到窗体上时,菜单是不可见的,当双击它打开菜单编辑器并且

.NET快速开发框架 1167

排查单片机不工作的‘玄学’故障:从LDO选型、复位电路到焊接不良的完整避坑指南

本文深入剖析单片机不工作的常见硬件故障,从LDO选型、复位电路设计到PCB布局和焊接工艺,提供系统性排查方法。重点分析3.3V电源稳定性、LDO动态响应特性及复位电路设计要点,帮助工程师快速定位和解决嵌入式系统中的'玄学'故障,提升产品可靠性。

weixin_30655569的博客 389

用友U8登录慢卡顿?别急着重启服务器,先检查UA_Message这张表(附SQL清理脚本)

本文针对用友U8登录慢卡顿问题,深入分析UA_Message表积压消息对系统性能的影响,并提供SQL清理脚本和优化方案。通过诊断、清理、索引优化和预防措施四步法,显著提升U8客户端登录速度,适用于后台管理和数据库维护场景。

weixin_28726671的博客 381

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

C++ Builder初学问与答(版权要求:本文除了经过优快云授权或作者同意,不得转载)     一直以来都想写一点为BCB初学者快速入门的东西,前不久写了几篇《闲谈BCB》想把自己学习BCB中如何来解决难点的方法说给大家,没想到被骂得不成样子。本想不写了,但觉得这些东西留下来能做什么呢?还是用另一种方法来重新演译我的思维吧,最近有些忙,那几篇没有写完的文章,我也会尽快写完的,至于《

ch_builder的专栏 4211

YOLOv11模型改进-模块-引入特征细化模块FRFN 解决小目标、遮挡等问题

FRFN 是一种专门设计的深度学习结构,旨在提高图像处理任务中的特征表示能力。它的核心设计理念是通过逐层细化和优化特征图,从而实现更高的分类和检测精度。1. 特征提取层:通过卷积层提取初始特征,并进行批量归一化以增强稳定性。2. 特征细化模块:在每个模块中,当前层特征图与前一层特征图进行融合,以强化特征表示。3. 跳跃连接:通过跳跃连接保留多尺度信息,帮助缓解深层网络中的信息丢失。4. 非线性激活:使用激活函数(如ReLU)增加模型的非线性能力。5. 输出层。

qq_64693987的博客 3337

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

4.列表类组件31)问:当我需要使用多个选项的时候,使用单选按钮或复选框来进行选择不是很恰当,因为在窗体上放置大量的按钮既不利于布局的美观,又会消耗大量的系统资源,C++Builder有什么解决办法吗?答:可以使用列表框(ListBox、CheckListBox)或组合框(ComboBox)这两类最常用的列表组件。32)问:列表框有那些主要属性?答:列表组件ListBox在缺省情况

ch_builder的专栏 2522

ResNet改进(20):融合Swin Transformer与ResNet

这种混合架构的设计理念是:在保留CNN强大局部特征提取能力的同时,引入Transformer的全局建模优势。我们实现的模型在ResNet18的基础上嵌入了一个简化版的Swin Transformer Block,旨在探索两种范式结合的可能性。通过在ResNet早期阶段引入Transformer模块,我们既保留了CNN强大的局部特征提取能力,又获得了Transformer的全局建模优势。本文提出的ResNet与Swin Transformer混合架构,探索了CNN与Transformer结合的可能性。

2401_82355416的博客 860

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

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

(本系列文章,仅供优快云使用,另授权CCRUN转载,其他个人与网站不得转载、摘抄,如需使用请与作者或优快云联系) 13.对话框组件     96)问:怎样编写文件打开、保存等对话框?  答:C++Builder为我们提供了许多常用的对话框组件,这些对话框组件都放在组件模板的Dialogs选项卡中,例如Font,Color,Open和Print对话框。其中OpenDialog对话

ch_builder的专栏 2556

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

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

(版权要求:本文仅授权优快云使用,另授权CCRUN转载,其他个人与网站不得转载、摘录,若有特别需求可与作者联系) (7)在C++Builder集成开发环境中,还有Component菜单。在组件菜单下的菜单命令是有关建立、安装、重建组件的菜单项。其中,“New Component”菜单项打开组件向导建立新组件。“Install Component”菜单项安装新的组件。“

ch_builder的专栏 2496

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

C++ Builder 初学问与答(廿一)

作者:董维春 网名:ch_builder(版权要求:请务必尊重知识产权,未经授权不要转载、摘录)25)问:控件是怎样处理拖曳的呢?答:当控件接受被拖曳的对象后会产生OnDragDrop事件,我们需要对这个事件进行响应,在对象观察器中双击控件的OnDragDrop事件域,生成它的处理模板。       加入这样一段代码,第二条语句判断被拖拽的对象是不是自己,否则不接受拖拽第三

ch_builder的专栏 3091

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

53)问:能介绍一下TTreeNodes与TTreeNode?答:在BCB中,树状视图的节点是通过TTreeNodes对象来管理的,通过这个对象可以对树状视图进行动态的增加、删除、插入、移动节点等操作。而每一个节点都是一个TTreeNode对象。TTreeNode的主要属性和函数:Count:这个属性用来返回某个节点所拥有的子节点的数目。它不包括其子节点。Item:其声明为:_pr

ch_builder的专栏 2630
上一篇: C++ Builder 初学问与答 (九)
下一篇: C++ Builder 初学问与答 (十一)
ch_builder
博客等级 码龄25年 76粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值