怎么用c语言更改按键顺序,c – 如何设置多个单选按钮组以进行正确的Tab键顺序和键盘交互(WIN32)?...

与流行的观点相反,您不需要groupbox控件,或任何其他此类外部“容器”(无论如何,groupbox都不是,它只是一个按钮工件).以下介绍如何在不需要组框的情况下执行此操作.如果您想要一个功能上有助于此处描述的布局的组合框,请转到本答案的编辑部分,在那里我将解释如何实现OP的特定需求.

自动单选按钮“库”通过使用两个关键窗口样式属性WS_GROUP和WS_TABSTOP来工作.为你的两个“银行”执行以下操作,我将亲切地称之为Bank1和Bank2:

> Bank 1:第一个单选按钮应该同时具有WS_GROUP |控件样式中的WS_TABSTOP.剩下的单选按钮应该没有这些按钮,并且必须是兄弟顺序(在DIALOG脚本中它们会立即相互跟随;在动态创建中它们是按顺序创建的).

> Bank1中最后一个单选按钮后的第一个子控件应该至少具有WS_GROUP样式,并且WS_GROUP | WS_TABSTOP,如果它是制表符停止的控件.

> Bank 2:第一个单选按钮应该同时具有WS_GROUP |控件样式中的WS_TABSTOP.剩下的单选按钮应该没有这些按钮,并且必须是兄弟顺序(在DIALOG脚本中它们会立即相互跟随;在动态创建中它们是按顺序创建的).

> Bank2中最后一个单选按钮后的第一个子控件应该至少具有WS_GROUP样式,并且WS_GROUP | WS_TABSTOP,如果它是制表符停止的控件.

如上所述的布局允许您“选项卡”到单选按钮库,并使用箭头键切换选择.然后,您再次“选项卡”离开该银行并前往下一个制表位.请记住,当您按Tab键(或使用Shift-Tab之前)时,对话框管理器将始终移动到下一个WS_TABTOP子控件.如果跳转到的控件是自动类型,则所选控件将是最近WS_GROUP中的“选定”控件.

如果它有帮助,抓住草图板,在纸上绘制,并在制表位上粘贴“T”,并在组属性上粘贴“G”,如上所述.一旦可视化,它可能会更加清晰.查看对话框资源脚本,了解这些脚本如何协同工作以获得更多洞察力.

注意:如果您想使用围绕这些的组框,您可以.对话管理器通过将控件与基于最后一个用WS_GROUP标记的控件的组相关联来工作,之后具有WS_TABSTOP的第一个控件被认为是该组的制表符跳转点.首先插入一个Groupbox(不能是一个tabstop),然后在第一个单选按钮(这次没有WS_GROUP)上使用WS_TABSTOP的单选按钮控件也可以.我通常发现更容易安排我的单选按钮而不依赖于groupboxes.

编辑一张图片说千言万语

为了您的图片,我可能会按以下顺序创建以下子项:

>“图标”组框,包括WS_GROUP样式.

>“信息”自动单选按钮,包括WS_TABSTOP

>所有其他“图标”组单选按钮.不要包含WS_TABSTOP或WS_GROUP.

>“按钮”组框,包括WS_GROUP样式.这将关闭当前控制组并启动下一个控制组.

>“AbortretryIgnore”自动单选按钮,包括WS_TABSTOP

>所有其他“按钮”组单选按钮.不要包含WS_TABSTOP或WS_GROUP.

>“按钮”单选按钮后的下一个控件必须包含WS_GROUP.这将关闭当前控制组并启动下一个控制组.

显然所有其他的儿童控制风格,可见性等也需要正确使用,当然孩子们都应该有独特的ID.我假设你已经完成了其余的工作.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值