c语言菜单 键盘,三、Windows键盘快捷键—启用菜单项
窗口消息处理程序的工作包括启用和无效化「Edit」菜单中的选项,这项工作在处理WM_INITMENUPOPUP时完成。首先,程序检查是否要显示「Edit」弹出式菜单。因为菜单里「Edit」的位置索引(「File」从0开始)是1,因此如果即将显示「Edit」弹出式菜单,那么lParam应该等于1。
为了确定是否启用「Undo」选项,POPPAD2给编辑控件发送一条EM_CANUNDO消息。如果编辑控件能够执行「Undo」动作,那么SendMessage呼叫传回非零值。在这种情况下,选项被启用;否则,选项无效化:
EnableMenuItem (wParam, IDM_UNDO,
SendMessage (hwndEdit, EM_CANUNDO, 0, 0) ?
MF_ENABLED : MF_GRAYED) ;
只有当剪贴簿中包含文字时,「Paste」选项才能够被启用。我们可以使用CF_TEXT标识符通过IsClipboardFormatAvailable呼叫来确定这一点:
EnableMenuItem (wParam, IDM_PASTE,
IsClipboardFormatAvailable (CF_TEXT) ? MF_ENABLED : MF_GRAYED) ;
只有选择了编辑控件中的文字,「Cut」、「Copy」和「Delete」选项才能够被启用。给编辑控件发送一条EM_GETSEL消息,并传回包含此信息的整数:
iSelect = SendMessage (hwndEdit, EM_GETSEL, 0, 0) ;
iSelect的低位字是第一个被选中字符的位置,iSelect的高字组是下一个被选中字符的位置。如果这两个字相等,则表示没有选中文字:
if (HIWORD (iSelect) == LOWORD (iSelect))
iEnable = MF_GRAYED ;
else
iEnable = MF_ENABLED ;
然后可以将iEnable的值用于「Cut」、「Copy」和「Delete」选项:
EnableMenuItem (wParam, IDM_CUT, iEnable) ;
EnableMenuItem (wParam, IDM_COPY, iEnable) ;
EnableMenuItem (wParam, IDM_DEL, iEnable) ;
c语言菜单 键盘,三、Windows键盘快捷键—启用菜单项相关推荐
- 180126—【Mac OS X虚拟机】使用备忘录—Mac键盘与windows键盘的对应
俗话说:在没有对比的情况下,对一个东西的认知总是不够全面而透彻的.对比,在大部分情况下会打破许多你习以为常,想当然的应当,给你一个从未有过的看待事物.思考问题的角度.方法. 好吧我承认这是我说的. 当 ...
- Android UI设计 下拉菜单Spinner用法 动态添加删除Spinner菜单项
Spinner是一种下接菜单,类似HTML中的select标签,点击后弹出一个对话框,显示几个供选择的选项,手机屏幕大小有限,如果都用RadioGroup单选按钮,会占用很大的空间.今天的例子最终效果 ...
- c语言菜单 键盘,三、Windows键盘快捷键—处理菜单项
当然,如果POPPAD2程序不使用子窗口编辑控件,那么我们将面临一些问题,这涉及如何完成「Edit」菜单中的「Undo」.「Cut」.「Copy」.「Paste」.「Clear」和「Select Al ...
- C语言笔记 第三章 键盘输入与输出
文章目录 1 printf() 1.1 整型 1.2 字符型 1.3 浮点型 1.4 其他 1.4.1 标志 1.4.2 输出最小宽度 1.4.3 精度 1.4.4 类型长度 1.5 转义字符 2 s ...
- Mac键盘和Windows键盘对应表
Boot Camp: Apple Keyboard (Ultra–thin USB) keyboard mapping in Windows Summary Learn how Boot Camp m ...
- Java菜单(菜单条、菜单和菜单项)
有两种类型的菜单:下拉式菜单和弹出式菜单.本章只讨论下拉式菜单编程方法.菜单与JComboBox和JCheckBox不同,它们在界面中是一直可见的.菜单与JComboBox的相同之处是每次只可选择一个 ...
- 13、Java菜单条、菜单、菜单项
13.Java菜单条.菜单.菜单项 一般用Java做界面时,都得牵涉到菜单条.菜单.菜单项的设计.菜单项放在菜单里,菜单放在菜单条里,且其字体均可设置. 13.1.菜单条(Menubar) Frame ...
- 如何在系统菜单中添加一个自己的菜单项
CSDN地址: http://topic.csdn.net/u/20080722/18/8517e419-7788-4d1c-9029-7a806f5da46c.html 全文: 如题,目前我要做的就 ...
- bootstrap 导航菜单 折叠位置_python测试开发django44.xadmin自定义菜单项
前言 xadmin后台的菜单项是放到一个app下的,并且里面的排序是按字母a-z排序,有时候我们需要划分多个项,需要自定义菜单列表,可以通过重写CommAdminView类实现. xadmin后台提供 ...
最新文章
- 拥有“上帝视角”是怎样的体验?高分多模卫星首批影像成果发布
- FTP的主动模式和被动模式,你应该用那种?
- VS 2019要来了,是时候了解一下C# 8.0新功能
- 主成分分析 PCA算法
- boost::math模块使用指定宽度的浮点 typedef估中等复杂的数学函数的测试程序
- 知乎上高赞的40个有趣回复,很精辟!
- python字典遍历 没有顺序_Python中字典的顺序问题(为什么实践发现字典的遍历和方法popitem并不是随机的?)...
- http://www.oreilly.com/catalog/errataunconfirmed.csp?isbn=9780596529321
- Adobe Flash Player v26.0.0.126发布:请尽快更新
- 开源众包-项目大厅数据爬取
- 安全防御-----防病毒
- 永恒之蓝漏洞紧急应对方案
- 支付宝交易行为数据分析
- 【报告分享】第二届中国工业互联网大赛成果汇编-中国工业互联网大赛组委会(附下载)
- Go包管理工具Vendor使用教程
- pe修改服务器2003密码,PE修改Windows密码
- 国家标准中常出入的IDT、MOD、EQV、NEQ是啥意思
- 安全狗加入天翼网信安全产业联盟 发挥云安全生态影响力
- MacOS下安装及配置Maven
- 一套极简的MQTT使用接口EasyMqttClient