- 菜单项的修改:
- 在程序运行中可以动态修改菜单性,包括添加、删除和修改操作。
- 使用几个API来进行操作,这个可以先进行略过,需要时阅读有关书籍即可。
- 使用系统菜单:
- 系统菜单的介绍:如下就是系统菜单。

- 系统菜单的创建:
WM_CREATE是窗口创建CreateWindow时,系统给消息处理程序发送的消息,每次窗口创建,有且只有1个WM_CREATE消息,所以只运行1次,可以在这里初始化滚动条,获取字体宽度、高度,创建子窗口、控件等等。

- 系统命令的处理:简单的来进行命令处理。

- 系统菜单的介绍:如下就是系统菜单。
- 右键弹出菜单:
- 我们的目标是:在客户区按下右键时,鼠标右上角会弹出系统菜单。

- 所以该程序分解为三步:检测按下右键、检测鼠标坐标、在该坐标处弹出菜单。
- 代码解释:可以看出x,y坐标,有关内容看详解就好:

- 我们的目标是:在客户区按下右键时,鼠标右上角会弹出系统菜单。
- 菜单状态的检测和设置:
- 对菜单项的状态进行设置的原因:比如,粘贴版中没有数据时,“粘贴”是灰色的;窗口中没有被选中的字符串时,“拷贝”菜单也应该是绘画的,这样可以给使用者一个善意的提醒。同时,对菜单的状态也常常需要检测,看看菜单项的状态一遍进行下一步操作。
- 菜单项状态的检测:

- 菜单项的设置状态函数:存在三种,分别是 菜单项的[禁用,灰化等]、菜单项对号(非互斥)、菜单项的圆圈(互斥)
- EnableMenuItem 函数:

- CheckMenuItem 函数: 对号非互斥操作

- CheckMenuRadioItem 函数:圆圈互斥

- EnableMenuItem 函数:
- 代码解读:

- 其他菜单函数:
- 菜单不一定非要在资源文件中定义,在程序中也可以用代码来建立菜单,不过比较麻烦。
- 使用菜单后涉及清除问题,与窗口相连的菜单句柄在窗口摧毁时自动由Windows系统释放,不需要手工操作,但没有与窗口相连的菜单就要由程序自己释放出来,使用 DestoryMenu,比如没有与窗口相连而仅用 TrackPopupMenu弹出的菜单句柄。
相关推荐
如何以编程方式更改 Windows 中的开始菜单布局
本文介绍了如何使用 Python 和 pywin32 库以编程方式修改 Windows 中的开始菜单布局。通过连接到 Windows Shell 对象并操作开始菜单的路径和文件,你可以根据自己的需求进行个性化设置。记得根据具体需求修改代码,并在执行脚本之前创建系统备份,以防意外发生。开始菜单是 Windows 操作系统的核心组成部分之一,它提供了用户访问应用程序、设置和其他系统功能的方式。在某些情况下,你可能希望以编程方式修改开始菜单的布局,以满足特定需求或个性化用户体验。你可以根据自己的需求进行修改。
添加菜单左边的图标
建一个图标大小为13 x 13.在CMainFrame添加member variable类型为CBitmap的Private 成员m_bitmap;在CMainFrame 的OnCreate函数中实现:m_bitmap.LoadBitmap(IDB_BITMAP1); GetMenu()->GetSubMenu(0)->SetMenuItemBitmaps(1,MF_BYPOSIT
Win32创建窗体菜单栏以及弹出菜单
创建下拉菜单、子菜单或快捷菜单
win32强化练习4.2_菜单勾选与图标变换
只有进行过充分的练习,才能够真正掌握一门技能!通过进行或单项或综合的知识点强化训练,巩固和提高自己的windows程序设计的技能水平!
Delphi 12.3下Jvcl源码编译与核心控件应用实战
在Delphi开发中,第三方组件库是扩展VCL功能、提升开发效率的关键。JEDI Visual Component Library (Jvcl) 作为社区驱动的开源库,通过提供大量增强控件和实用工具,弥补了官方VCL在深度和广度上的不足。其核心价值在于提供源代码,赋予开发者完全的调试、定制和适配新版本的能力,这对于长期项目维护和应对Delphi版本升级至关重要。在Delphi 12.3等新版本环境下,正确编译和配置Jvcl源码是首要步骤,涉及环境变量设置、编译脚本识别和依赖路径管理。成功部署后,其核心控件如
C#_Win32API操纵系统菜单
C#_Win32API操纵系统菜单
Win32创建菜单篇
一、知识准备: 菜单 ----- 每个菜单会有一个HMENU句柄 菜单项 ------ 每个菜单项会有一个ID号,可以根据这个ID执行不同的操作。 菜单一般分为三种:系统菜单、顶层菜单、弹出菜单(右键菜单)。 系统菜单: 程序左上角的图标点击鼠标左键、或者在标题栏点击鼠标右键,出现的就是系统菜单。主要内容有:还原、移动、大小、最小化、最大化、关闭。 顶层菜单: 一般出现在程序左上角位置。 弹出菜单: 程序的窗口中点击鼠标右键(必要的时候左键也可以)弹出的菜单,或者顶层菜单点击后出现的菜单,都称为弹出式菜单
Qlib数据获取避坑指南:从CSV导入到自定义数据源的完整解决方案
本文详细解析了Qlib数据获取的完整解决方案,从CSV导入到自定义数据源,涵盖了股票数据处理的关键技巧和常见陷阱。特别针对Qlib平台的数据格式要求和复权处理提供了实用指南,帮助量化投资者高效整合Wind等第三方数据源,确保数据质量与模型性能。
VC中的一种漂亮的自绘菜单
源码下载效果图: 磁盘阵列(Disk Array)原理 一、CMenuEx菜单类主要接口函数: 1、void InitMenu(CMenu *pMenu,UINT uToolBar,CToolBar *pToolBar); 说明:这是最主要的一个接口。如果要改变主窗口的菜单则应在主窗口的OnInitMenu(CMenu *pMenu)中调用该函数(如:m_menu.
别再死磕MuJoCo了!用PyBullet+Stable-Baselines3搞定机械臂强化学习(保姆级环境配置)
本文详细介绍了如何使用PyBullet和Stable-Baselines3构建机械臂强化学习系统,绕过昂贵的MuJoCo许可壁垒。通过实战指南,包括环境配置、机械臂Gym环境构建、训练策略与调优技巧,帮助开发者快速掌握机器人强化学习技术,提升智能控制效率。
手把手教你用STM32F103的IO口模拟XY2-100协议驱动数字振镜(附Keil O3优化代码)
本文详细介绍了如何使用STM32F103的IO口模拟XY2-100协议驱动数字振镜,包括协议解析、偶校验算法、寄存器级优化及Keil O3编译下的性能调优。通过硬件配置、核心代码实现和优化技巧,帮助开发者实现高速二维偏转控制,适用于工业激光雕刻和精密定位系统。
TranslucentFlyouts 快速上手指南:Windows 弹出菜单变亚克力与云母的完整步骤
TranslucentFlyouts 能让 Windows 10/11 上大部分 Win32 弹出菜单拥有亚克力、云母等半透明效果。本文讲清安装方法、3 步验证效果,并覆盖符号下载失败、.NET 应用崩溃、StartAllBack 白边这几个高频问题的处理与验证方式。 ## 一、初体验:10 分钟装好透明菜单 默认的白色菜单背景配粗边框,和 Windows 11 的整体观感格格不入。Trans
西门子S7-200 SMART PLC控制伺服电机
以下是使用西门子S7-200 SMART PLC控制伺服电机的详细程序框架和配置说明,涵盖硬件接线、PLC配置和基本运动控制逻辑。具体实现需根据伺服电机型号(如松下、三菱、台达等)调整参数。通过以上步骤,可实现伺服电机的基础位置控制。实际应用需根据设备机械参数和伺服驱动器手册调整细节。建议在调试时逐步测试脉冲输出和方向信号是否正常。
PowerToys Awake 模块技术解析:用 SetThreadExecutionState 实现非侵入式系统防休眠
Awake 是 Microsoft PowerToys 中的电源管理工具,它通过 Windows 电源管理 API 在运行时临时阻止系统休眠与显示器关闭,而不修改任何系统电源计划。本文围绕 `doc/devdocs/modules/awake.md` 的模块文档展开,结合 `src/modules/awake` 下的真实源码,剖析其四种工作模式的实现原理、完整的命令行接口、纯 Win32 系统托盘
OK3588-C开发板Forlinx Desktop系统烧录与多媒体功能实战
本文详细介绍了OK3588-C开发板Forlinx Desktop系统的烧录步骤与多媒体功能实战。从硬件准备到软件工具配置,逐步解析RKDevTool烧录技巧,并深入测试摄像头、视频编解码及音频功能,帮助开发者快速掌握RK3588芯片的强大性能与Ubuntu系统的优化应用。
ICDAR数据集简介
ICDAR(文档分析与识别国际会议)是OCR领域的权威会议,每两年发布一次数据集,专注于自然场景文本检测与识别,涵盖多语言、复杂版式和真实环境挑战。街景、广告牌、票据、手写文档等真实场景图像。包含水平、垂直、倾斜、弯曲文本,背景干扰大,部分文本存在遮挡或模糊。提供文本位置坐标(矩形/四边形框)及内容,无法识别的文本标记为###。以上总结提炼了ICDAR的核心价值与应用方法论。给出最佳实践方法是官网数据预训练模型 + 业务数据微调(比如用PPOCRLabel标注100+张业务图)。
VC++ MFC系统托盘功能完整实现:从API原理到健壮封装
系统托盘是Windows桌面应用程序中实现后台常驻、前台隐身交互模式的核心组件,广泛应用于监控、通讯、下载管理等软件。其技术原理基于Windows Shell提供的标准API,通过NOTIFYICONDATA结构体定义图标属性,并调用Shell_NotifyIcon函数与系统任务栏进行通信。在VC++ MFC开发中,合理封装这一功能能显著提升代码复用性和程序健壮性。本文深入解析了托盘图标的消息响应机制、资源管理策略,并针对多显示器适配、高DPI缩放等实际工程挑战提供了解决方案。通过封装可复用的CSystem
【AI智能体】AI 编程 + 飞书CLI + Skills 重塑开发新范式实战操作详解
AI 编程 + 飞书CLI + Skills 重塑开发新范式实战操作详解
Visual Studio C语言开发:解决方案资源管理器与main函数规范
C语言开发环境的核心在于理解IDE的工程化结构与标准语法约束。解决方案资源管理器是Visual Studio中管理文件依赖、构建配置和项目拓扑的可视化骨架,其缺失本质反映对‘项目即结构’这一工程范式的认知断层;而int main()作为C标准强制规定的程序入口签名,关乎操作系统调用约定、进程退出码可靠性及跨平台兼容性。掌握其恢复方法(如Ctrl+Alt+L、Quick Launch搜索)与正确声明方式(非void main),是构建可维护、可调试、可协作C工程的基础前提,广泛适用于高校实训、嵌入式开发及Wi
YOLOv8交通监控全方案:精准车辆计数+违章(闯红灯/压线)识别,拿来就落地!
作为深耕计算机视觉落地的开发者,我见过太多交通监控的“伪智能”——传统系统要么车辆计数不准(漏计/重复计数),要么违章识别滞后(靠人工回看录像),甚至连“闯红灯、压线”这类常见违章都无法实时判定,完全满足不了实际交通管理需求。
温度PID控制PLC程序
温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值
COM注册表键项详解
本文系统梳理了Windows注册表的核心结构与功能,重点解析了五种主要注册表根键(HKCR、HKCU、HKLM、HKU、HKCC)的层级关系与数据来源。文章详细说明了COM组件注册的关键项(CLSID、ProgID、AppID等)及其子项配置,包括进程模型、安全权限、接口代理等参数设置。同时深入分析了文件扩展名关联机制、Shell扩展点(右键菜单/属性页等)的注册方式,以及自启动项、系统预设动词等实用注册表路径。
OV9734 DATASHEET,完整规格书
OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等
OpenClaw v2.4.1:Windows 11 原生本地大模型智能体一键部署指南
本地大语言模型智能体(LLM Agent)是实现任务自动化的核心范式,其本质是将自然语言指令转化为多步骤工具调用与自主执行流程。相比云端API依赖或复杂容器化方案,原生Windows支持显著降低职场人与学生党的技术门槛——无需WSL2、不绕过系统安全策略、规避CUDA版本错配与环境冲突等高频部署断点。OpenClaw作为面向生产力场景的轻量级框架,依托Rust运行时与PowerShell事务脚本,实现开机自启、热重载、断点续传与服务化封装,真正达成‘15分钟内让数字同事跑起来’的技术承诺。本文聚焦Windo
廖雪峰Python教程[完整版]
廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白
复分析 阿尔福斯(Ahlfors) 第三版答案 英文
答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案
Python生态GUI框架:Gooey、Pywinauto、PyQuery、JustPy、Maliang、WhakerPy
Python生态GUI框架:Gooey、Pywinauto、PyQuery、JustPy、Maliang、
STM32CubeIDE新手入门:从环境搭建到HAL库实战
嵌入式开发中,STM32CubeIDE作为集成化开发环境,本质是将芯片配置、外设初始化、编译调试等复杂流程抽象为标准化操作。其核心依托CubeMX图形化配置与HAL库封装,实现从寄存器级操作到函数级调用的跃迁,显著降低初学者的认知负荷。技术价值在于通过三层抽象(硬件→SVD描述→CubeMX→HAL)统一管理引脚复用、时钟树、DMA映射等关键资源,支撑LED控制、串口通信、SPI传感器驱动等典型应用场景。尤其适配STM32F1系列等主流MCU,成为‘stm32cubeide下载’‘cubemx安装’等高频搜
win32gui ======= EnableMenuItem之百度解释
2019独角兽企业重金招聘Python工程师标准>>> ...
动态菜单
既然是动态菜单,就需要在一个消息响应中创建菜单,例如,WM_CHAR消息。 菜单资源是和对象联系的,所以要有一个CMenu对象。 AppendMenu函数为调用这个函数的对象的菜单添加一个后置的菜单或菜单项。有三个参数,第一个参数如果是MF_POPUP说明是弹出菜单,这时候第二个参数应该指定一个菜单句柄,菜单句柄从哪来呢?刚才的CMenu对象有一个方法是专门为自己分配一个句柄的createme
128



被折叠的 条评论
为什么被折叠?



