翻译《The Old New Thing》 - Double-clicking radio buttons

Double-clicking radio buttons - The Old New Thing (microsoft.com)icon-default.png?t=N7T8https://devblogs.microsoft.com/oldnewthing/20050804-10/?p=34713

Raymond Chen 在 2005年08月04日


让对话框单选按钮支持双击确定

提示

本文提供了一种让对话框窗口上的控件支持双击确定窗口返回的方法

正文

        为你的对话框增加一丝精致感,可以通过支持双击单选按钮作为“选择 + 确定”的快捷方式。

( 如果页面是向导的一部分,则为“选择 + 下一步”或“选择 + 完成”。)

        考虑以下对话框模板

1 DIALOGEX DISCARDABLE  32, 32, 200, 76
STYLE DS_MODALFRAME |  WS_POPUP |WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION “Sample”
FONT 8, “MS Shell Dlg”
BEGINLTEXT “A mumbler is needed.”,-1,7,8,100,10AUTORADIOBUTTON “Do not &obtain a mumber now”,100,17,24,180,10AUTORADIOBUTTON “Obtain a mumbler auto&matically”,101,17,34,180,10AUTORADIOBUTTON “&Enter mumbler manually”,102,17,44,180,10DEFPUSHBUTTON “OK”,IDOK,92,58,50,14PUSHBUTTON “Cancel”,IDCANCEL,146,58,50,14
END

        和相关的对话框过程:

INT_PTR CALLBACK DlgProc(HWND hdlg, UINT uMsg,WPARAM wParam, LPARAM lParam)
{switch (uMsg) {case WM_INITDIALOG:CheckRadioButton(hdlg, 100, 102, 100);return TRUE;case WM_COMMAND:switch (GET_WM_COMMAND_ID(wParam, lParam)) {case IDOK:for (int i = 100; i <= 102; i++) {if (IsDlgButtonChecked(hdlg, i)) EndDialog(hdlg, i);}break;case IDCANCEL:EndDialog(hdlg, -1);break;}}return FALSE;
}

         这是一个相当标准的、没什么特别的对话框,要求用户从列表中选择一个选项。注意,双击单选按钮并不做任何特别的事情。我们可以修复这一点。

1 DIALOGEX DISCARDABLE  32, 32, 200, 76
STYLE DS_MODALFRAME |  WS_POPUP |WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION “Sample”
FONT 8, “MS Shell Dlg”
BEGINLTEXT “A mumbler is needed.”,-1,7,8,100,10AUTORADIOBUTTON “Do not &obtain a mumber now”,100,17,24,180,10,BS_NOTIFYAUTORADIOBUTTON “Obtain a mumbler auto&matically”,101,17,34,180,10,BS_NOTIFYAUTORADIOBUTTON “&Enter mumbler manually”,102,17,44,180,10,BS_NOTIFYDEFPUSHBUTTON “OK”,IDOK,92,58,50,14PUSHBUTTON “Cancel”,IDCANCEL,146,58,50,14
END

 

INT_PTR CALLBACK DlgProc(HWND hdlg, UINT uMsg,WPARAM wParam, LPARAM lParam)
{switch (uMsg) {case WM_INITDIALOG:CheckRadioButton(hdlg, 100, 102, 100);return TRUE;case WM_COMMAND:switch (GET_WM_COMMAND_ID(wParam, lParam)) {case IDOK:for (int i = 100; i <= 102; i++) {if (IsDlgButtonChecked(hdlg, i)) EndDialog(hdlg, i);}break;case IDCANCEL:EndDialog(hdlg, -1);break;case 100:case 101:case 102:if (GET_WM_COMMAND_CMD(wParam, lParam) == BN_DBLCLK) {EndDialog(hdlg, GET_WM_COMMAND_ID(wParam, lParam));}break;}}return FALSE;
}

        我们在单选按钮上添加了 BS_NOTIFY 样式,这启用了扩展通知(除了 BN_CLICKED 之外的所有通知)。当我们收到一个指定操作为 BN_DBLCLK 的单选按钮的 WM_COMMAND 消息时,我们自动点击确定按钮。(对于向导,我们将根据情况自动点击下一步或完成按钮。)

        请注意,双击作为选择和确定的快捷方式应该只用于只有单选按钮(和确定和取消按钮)的对话框或向导页面。如果页面上有除单选按钮之外的其他控件,那么你必须等待用户确定,因为他可能想操作其他控件。

        如果对话框上只有列表框或列表视图,而用户被要求从中选择一个项目,那么这个“双击意味着选择和确定”的快捷方式也可以使用。如果用户双击列表中的一个项目,将其视为选择和确定。

        资源管理器中的对话框对双击单选按钮的支持相当不一致。Office 和 Money 团队在这方面做得好多了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3015479.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

git-新增业务代码分支

需求 使用git作为项目管理工具管理项目&#xff0c;我需要有两个分支&#xff0c;一个分支是日常的主分支&#xff0c;会频繁的推送和修改代码并推送另外一个是新的业务代码分支&#xff0c;是一个长期开发的功能&#xff0c;同时这个业务分支需要频繁的拉取主分支的代码&#…

oracle试用期过期,解决办法

过期重置方法&#xff0c;删除注册表&#xff0c;相当于无限试用&#xff0c;缺点每30天都要重置一次 1. window r 输入 regedit 确定&#xff0c;打开注册表 2.删除下图里的两个文件夹 3.重启 plsql,登录成功

react antd table 自定义表头功能实现

react antd table 自定义表头功能 Ⅰ- 壹 - 功能展示和使用需求 需求描述 基于antd table 实现 自定义 table 的表头 内容 排序 宽度和顺序等 , 可根据自己的需求自己扩展 github:https://github.com/whqgo/ReactAntdTableCustomHeader 功能展示 Ⅱ - 贰 - 封装思路 Task…

2024年4月17日华为春招实习试题【三题】-题目+题解+在线评测,2024.4.17,华为机试

2024年4月17日华为春招实习试题【三题】-题目题解在线评测 &#x1f52e;题目一描述&#xff1a;扑克牌消消乐输入描述输出描述样例一样例二Limitation解题思路一&#xff1a;模拟&#xff0c;遇到连续3张相同牌号的卡牌&#xff0c;直接删除解题思路二&#xff1a;栈解题思路三…

软考网络工程师 第六章 第二部分 第二节 IP分片与计算

IP定义 IP报文最大65535字节&#xff0c;而以太网MTU为1500字节。 相当于货轮能载重65535&#xff0c;而火车载重1500&#xff0c;那么必须把货轮上的货物分装给多个火车运输 例题精选解析 以太网主机发送一个IP分组&#xff0c;长度3000字节&#xff0c;头长度为标准长度&a…

【北京迅为】《iTOP-3588开发板源码编译手册》-第三章 编译 Linux源码包

RK3588是一款低功耗、高性能的处理器&#xff0c;适用于基于arm的PC和Edge计算设备、个人移动互联网设备等数字多媒体应用&#xff0c;RK3588支持8K视频编解码&#xff0c;内置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800万像素ISP&…

C语言 函数概述

好 接下来 我们来讲函数 构建C程序的最佳方式 就是模块化程序设计 C语言中 最基本的程序模块被称为 函数 所以 这个知识点的重要性不言而喻 这里 我们讲个故事 诸葛亮六出祁山时 为了逼司马懿出战 派人送给力司马懿一件女人衣服 司马懿只是为使者 诸葛亮的饮食起居 使者感叹…

AI论文速读 |2024[IJCAI]TrajCL: 稳健轨迹表示:通过因果学习隔离环境混杂因素

题目&#xff1a; Towards Robust Trajectory Representations: Isolating Environmental Confounders with Causal Learning 作者&#xff1a;Kang Luo, Yuanshao Zhu, Wei Chen, Kun Wang(王琨), Zhengyang Zhou(周正阳), Sijie Ruan(阮思捷), Yuxuan Liang(梁宇轩) 机构&a…

leetcode-字符串的排列-100

题目要求 思路 1.因为只涉及到字符&#xff0c;因此可以进行排序 2.创建临时字符串&#xff0c;当临时字符串temp的长度等于str的长度&#xff0c;作为判出条件。 3.创建一个标记的数组&#xff0c;每次在temp中插入一个字符&#xff0c;便在对应的数组下标设置为1&#xff0c…

国家电网某地电力公司网络硬件综合监控运维项目

国家电网某地电力公司是国家电网有限公司的子公司&#xff0c;负责当地电网规划、建设、运营和供电服务&#xff0c;下属多家地市供电企业和检修公司、信息通信公司等业务支撑实施机构。 项目现状 随着公司信息化建设加速&#xff0c;其信息内网中存在大量物理服务器、存储设备…

美团KV存储squirrel和Celler学习

文章目录 美团在KV存储squirrel优化和改进在水平方向1、对Gossip协议进行优化 在垂直扩展方面1、forkless RDB数据复制优化2、使用多线程&#xff0c;充分利用机器的多核能力 在高可用方面 美团持久化kv存储celler优化和改进水平扩展优化1、使用bulkload进行数据导入2、线程模型…

linux启动常见问题

一、忘记root密码 日常生活中&#xff0c;我们会接触到很多账号和密码&#xff0c;而这些账号和密码我们不能都很好的记忆&#xff0c;对于linux也是一样的&#xff0c;如果root密码忘记了怎么办&#xff1f;岂不是都无法登陆使用Linux了&#xff1f;现在我就教各位&#xff0c…

一文了解CRM系统帮助中心:从认识到搭建

客户关系管理&#xff08;CRM&#xff09;系统是企业的一个重要部分。而CRM系统帮助中心为用户提供了便捷的支持服务&#xff0c;提升了用户体验&#xff0c;减少了企业运营成本。本文将从认识到搭建&#xff0c;带你全面了解CRM系统帮助中心。 一、认识CRM系统帮助中心 CRM系统…

智慧交通系统:未来出行,从这里开始

随着城市化进程的加快&#xff0c;交通拥堵、事故频发、停车难等问题日益凸显&#xff0c;传统交通管理模式已难以满足现代社会的需求。智慧交通系统作为解决这些问题的关键&#xff0c;通过集成创新技术&#xff0c;实现交通管理的智能化、信息化&#xff0c;提高交通系统的运…

流量分析利器arkime的学习之路(三)---结合Suricata攻击检测

1、基础 Arkime安装部分参考《流量分析利器arkime的学习之路&#xff08;一&#xff09;—安装部署》 在此基础上安装suricata软件并配置。 2、安装suricata yum install suricate 可能依赖的文件包括libyaml&#xff0c;PyYAML&#xff0c;这些可能在之前安装arkime或者其他…

教程分享:如何为跨境电商、外贸、国际展会制作二维码?

不论是做跨境电商、在全球做产品推广&#xff0c;还是国外的餐厅运营、参加国际展会&#xff0c;或者是做创意户外广告、制作个性化的个人名片、有趣的产品包装……只要是在国外使用二维码&#xff0c;你都可以在QR Tiger去制作您需要的二维码&#xff01; 一、认识QR Tiger 二…

RVM(相关向量机)、CNN_RVM(卷积神经网络结合相关向量机)、RVM-Adaboost(相关向量机结合Adaboost)

当我们谈到RVM&#xff08;Relevance Vector Machine&#xff0c;相关向量机&#xff09;、CNN_RVM&#xff08;卷积神经网络结合相关向量机&#xff09;以及RVM-Adaboost&#xff08;相关向量机结合AdaBoost算法&#xff09;时&#xff0c;每种模型都有其独特的原理和结构。以…

[开发|鸿蒙] 鸿蒙OS开发环境搭建(笔记,持续更新)

搭建开发环境流程&#xff1a; https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/installation_process-0000001071425528-V2 鸿蒙DevEco Studio 3.1.1 Release仅支持windows和mac系统 运行环境要求 为保证DevEco Studio正常运行&#xff0c;建议电脑配置…

idea修改maven项目名称及子模块名称

一、修改目录名称 shift F6修改目录&#xff0c;选择“rename module and dictionary”。![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/43efd9c6af6e43ad9656455db94b37a2.png)二、修改子项目pom的 三、修改父项目pom的 四、刷新maven项目

消费金融平台公司如何做大做强自营产品

本文来自于2019年的某次内部分享沟通会&#xff0c;部分敏感内容已做删减。