|IContextMenu第七部分:执行默认动作

文章图片
有人会问:如何通过程序的方式来执行上下文菜单的默认动作 。 注意 , 这里是要求使用程序化的方式 , 而不是交互式方式 。
这的确是一个好问题 。
通过我们之前几篇文章的讲解 , 我们对上下文菜单有了比较深入的了解 。 而这些知识点可以帮助解决上面提到的问题 。
关键在于 , 我们需要使用菜单句柄(HMENU)来识别默认的菜单项 , 然后直接调用它就可以了 。 让我们看看下面的代码(这段代码来自系列文章的第一部分) , 然后我使用了蓝色字体标记了所需要做的改动 。
在上面的代码中 , 我们调用了GetMenuDefaultItem来获取默认的菜单项 , 然后将待执行动作设置为菜单项的偏移量(在这个例子中 , 我们用默认菜单项索引减去传入给QueryContextMenu的菜单项起始值 。
值得一提的是 , 虽然这段代码可以正常工作 , 但是它还有有些提升空间 , 在后面的一篇文章中 , 我会讲解如何优化这段代码 , 使它看起来更加美好 。
总结弄清楚原理之后 , 实现起来就比较容易 。
反之 , 如果上来就开始写代码 , 不研究其内在原理 , 则 , 可能代码可以工作 , 但是心里会不太踏实 。
与君共勉 。
最后Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一 , 里面有很多关于Windows的小知识 , 对于广大Windows平台开发者来说 , 确实十分有帮助 。
本文来自:《How to host an IContextMenu part 7 – Invoking the default verb》
【|IContextMenu第七部分:执行默认动作】
- 为什么同学群里,很少有人说话,大部分人都选择沉默或者屏蔽?
- MC将推出更为全面的举报机制,引起部分玩家抵制
- |中兴、华为和烽火中标!中国移动OTN设备新建部分集采公示
- Apple Watch|部分旧款Apple Watch将通过watchOS 9重新校准最大电池容量值
- 世界智能大会|3000出头就能买卡贴iPhone13,虽然便宜,但仅适合一小部分人!
- 算法|魅族19官方预热:部分配置曝光,首批渲染图出炉!
- 5年后机器人将替代部分人类,工人面临大规模失业,他们该怎么办
- 1.2亿年前,部分恐龙已经定期“换毛”,最终变成鸟类
- iPhone|不止有双挖孔屏 iPhone 14 Pro系列大部分参数曝光
- 硅谷|Adobe Substance 3D部分3D建模工具支持苹果M1/M2设备
