trackpopupmenuex

用HOOK机制让自绘菜单栏控件模拟系统菜单栏行为 在Windows的UI开发中,我们经常需要对窗口和控件进行自绘,以实现独特的UI风格,满足软件的个性化需求,提升用户的视觉体验。目前市面上流行的软件,大都有自己别具一格的界面,许多软件还提供多种界面供用户选择,我们称之为skin。应用程序的类型,按M$通俗粗略的划分,可以分为:对话框程序、单文档程序(SDI)、多文档程序(MDI)。在换肤功能的开发中,对话框程序是最简单的,单文档和多文档程序是 阅读详情
  name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-5572165936844014&dt=1193665761703&lmt=1193665780&format=336x280_as&output=html&correlator=1193665761687&url=http%3A%2F%2Fwww.codeguru.cn%2Fpublic%2Fiframe%2Fwinapiiframe.htm&color_bg=FFFFFF&color_text=000000&color_link=000000&color_url=FFFFFF&color_border=FFFFFF&ad_type=text&ga_vid=1285758818.1193665762&ga_sid=1193665762&ga_hid=111695597&flash=9&u_h=768&u_w=1024&u_ah=740&u_aw=1024&u_cd=32&u_tz=480&u_his=8&u_java=true" frameborder="0" width="336" scrolling="no" height="280" allowtransparency="allowtransparency">     函数功能:该函数在指定位置显示快捷菜单,并跟踪菜单项的选择。快捷菜单可出现在屏幕上的任何位置。

    函数原型:BOOL TrackPopupMenuEX(HMENU hMenu,UINT uFlags,int x,int y,HWND hWnd,LPTPMPARAMS lptpm);

    参数:

    hMenu:被显示的快捷菜单的句柄。此句柄可为调用CreatePoPuPMenu创建的新快捷菜单的句柄,也可以为调用GetSubMenu取得的与一个已存在菜单项相联系的子菜单的句柄。

    UFlags:定位或其他选项。此参数可为零或取在函数CreatePopupMenu里所列的值,也可取下列之一值:

    TPM_HORIZONTAL:在不覆盖排斥矩形就不能在指定位置显示菜单时,系统将先考虑水平对齐的要求。

    TPM_VERTICAL:在不覆盖排斥矩形就不能在指定位置显示菜单时,系统将先考虑垂直对齐的要求。排斥矩形是指屏幕上菜单不能覆盖的部分,由Iptpm指定。

    X:在屏幕坐标下,快捷菜单的水平位置。

    Y:在屏幕坐标下,快捷菜单的垂直位置。

    hWnd:拥有快捷菜单的窗口的句柄。此窗口接收来自菜单的所有消息。函数返回前,此窗口不接受来自菜单的WM_COMMAND消息。

    如果在参数uFlags里指定了TPM_NONOTIFY值,此函数不向hwnd标识的窗口发消息。 但必须给hwnd里传一个窗口句柄,可以是应用程序里的任一个窗口句柄。

    lptpm:指向结构TPMPARAMS的指针,该结构指定屏幕上菜单不能覆盖的区域。此参数可为NULL。

    返回值:如果在参数UFlags里指定了TPM_RETURNCMD值,则返回值是用户选择的菜单项的标识符。如果用户未作选择就取消了菜单或发生了错误,则返回值是零。如果没在参数uFlags里指定TPM_RETURNCMD值,函数调用成功,返回非零值,若函数调用失败,返回零。若想获得更多的错误信息,请调用GetLastError

    函数。

    备注:Womdpws CE不支持参数uFlags取下列值:

    TPM_NONOTIFY;TPM_LEFTTBUTTON;TPM_RIGHTBUTTTON;TPM_HORIZONTAL;TPM_VERTICAL;

    参数lptpm必须设为NULL。

    速查:Windows NT:4.0及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;输入库:user32.lib。

MFC程序如何优雅地隐藏到系统托盘?5步搞定带右键菜单功能 本文详细介绍了如何在MFC程序中优雅地实现系统托盘功能,包括5个关键步骤:平滑过渡到托盘、左键恢复窗口、右键弹出菜单、资源清理和用户体验优化。通过使用`NOTIFYICONDATA`结构体和`Shell_NotifyIcon`函数,开发者可以轻松为应用程序添加专业的系统托盘交互功能。 阅读详情

相关推荐

AD7920实战:从咪头到ADC的音频信号采集电路设计全解析(附电路图)

本文详细解析了基于AD7920 ADC芯片的音频信号采集电路设计全流程。从驻极体咪头的驱动、AD8542运放的两级增益与偏置设计,到关键的抗混叠滤波器配置,以及ADC接口的驱动缓冲与PCB布局要点,提供了完整的实战指南与电路图,帮助开发者实现高质量音频信号采集。

red88的博客 792

API全功略(API编程的详细介绍)

API全功略(API编程的详细介绍)什么是API 首先,有必要向大家讲一讲,什么是API。所谓API本来是为C和C++程序员写的。API说来说去,就是一种函数,他们包含在一个附加名为DLL的动态连接库文件中。用标准的定义来讲,API就是Windows的32位应用程序编程接口,是一系列很复杂的函数,消息和结构,它使编程人员可以用不同类型的编程语言编制出的运行在Windows95和Windows NT

April的学习全纪录 1万+

保姆级教程:用vxe-grid给管理后台加个「智能筛选」功能(支持模糊搜索/多选/范围查询)

本文提供了一份详细的Vxe-Grid智能筛选功能实现教程。通过自定义筛选器渲染,文章逐步指导开发者为后台管理系统添加支持模糊搜索、多选下拉和数值范围查询的智能筛选功能,并分享了性能优化与移动端适配等实战经验。

weixin_29021291的博客 534

解决TrackPopupMenu显示菜单不全的问题

经常使用菜单,但是如果直接加载菜单资源,调用TrackPopupMenu时 就会出现菜单显示不全的问题, 基本上解决方法就是先GetSubMenu,再TrackPopupMenu, 两种方法,一种就是在菜单资源里把所要加载的资源放到一个Popup属性的菜单下面, 另外就是程序创建一个Popup菜单,把菜单资源附加到这个Popup菜单上,再从Popup菜单中GetSubMenu(0)  取得需要

zgl7903的专栏 4287

实战指南:CentOS 7下VOS3000 8.0从零部署到授权激活全流程

本文提供了一份详尽的CentOS 7系统下部署VOS3000 8.0的实战指南。从环境准备、使用FileZilla上传安装包、执行自动化安装脚本,到获取软件码、利用注册机生成授权文件并激活,手把手带领用户完成从零部署到投入商用的全流程,确保系统稳定运行。

zero1的博客 895

机器学习kaggle案例:风控评分卡模型(Give_Me_Some_Credit)

kaggle链接:https://www.kaggle.com/c/GiveMeSomeCredit ipynb文件:https://github.com/824024445/KaggleCases/blob/master/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0kaggle%E6%A1%88%E4%BE%8B%EF%BC%9A%E9%A3%8E%E6%8E%A7%...

weixin_42662126的博客 1万+

取消对 null 指针“l”的引用。_利用CVE20191132:Windows内核中的另一个NULL指针取消引用...

NULL指针取消引用应该早在几年前就已终止,但仍在恶意软件攻击中被发现和使用。这篇文章探讨了CVE-2019-1132的内部细节,Buhtrap小组将其用于针对东欧的受害者。介绍我们在本文中讨论的漏洞NULL指针取消引用位于win32k.sys驱动程序中,该驱动程序导致Windows 7和Windows Server 2008操作系统上的特权(EoP)成功升级。Microsoft在7月补...

weixin_39616416的博客 377

C++结合大漠插件实现DNF自动化脚本:从原理到实战

自动化技术通过模拟用户操作,实现重复性任务的自动执行,其核心原理在于对系统输入输出接口的精确控制。在Windows平台,这通常涉及窗口管理、图像识别与键鼠模拟等技术。这些技术为软件自动化测试、办公流程自动化及特定场景的辅助工具开发提供了工程实践基础。大漠插件作为国内广泛使用的Windows自动化开发组件,封装了上述底层操作,显著降低了开发门槛。通过其提供的COM接口,开发者可以高效实现窗口绑定、后台找图找色及内存读写等关键功能。本文以《地下城与勇士》为例,详细解析如何利用C++集成大漠插件,构建一个稳定、高

weixin_34185512的博客 567

wtl界面3

WM_CONTEXTMENU处理右键环境菜单. 命令栏CCommandBarCtrl控件,有TrackPopupMenu方法,与win32的TrackPopupMenuEx一样. BOOL CCommandBarCtrlImpl::TrackPopupMenu(HMENU hMenu, UINT uFlags, int x, int y,LPTPMPARAMS lpParams = NULL) 使用前,加载菜单资源.有CMenu和CMenuHandle两个类. LRESULT CMainFrame::On

个人进步之路 617

桑基图实战指南:Excel/Python/R三工具高效绘制方法

桑基图是一种以线条宽度编码流量大小、以节点位置表达流程阶段、以连接关系呈现数据流向的专项可视化技术,其核心原理在于‘宽即量、位即序、连即逻辑’。它并非装饰性图表,而是面向业务诊断的分析前置工具,尤其适用于预算分配、能源损耗、用户转化等存在明确单向流动与显著数值差异的场景。相比传统柱状图或漏斗图,桑基图能天然暴露系统瓶颈与隐性损耗,大幅提升决策效率。本文聚焦工程落地,覆盖Excel插件快速交付、Python Plotly交互开发、R networkD3生态集成三大主流路径,兼顾数据准备铁律、索引映射规范与中文

cuml0912的博客 486

ximalaya 新xm-sign逆向思路

本文主要介绍目标网站新xm-sign值的逆向思路。仅代表个人理解,如有其他建议可在评论区沟通。声明仅仅记录一下自己的学习方法,不作为其他参考、更不作为商业用途。如有侵犯请联系本人删除。

weixin_66580433的博客 2017

易语言 html 右键,易语言系统API软件内部右键菜单源码

效果图:源码:.版本2.子程序__启动窗口_鼠标右键被放开,逻辑型.参数横向位置,整数型.参数纵向位置,整数型.参数功能键状态,整数型.局部变量ret,整数型.局部变量mhwnd,整数型,,,父菜单句柄mhwnd=CreatePopupMenu()AppendMenuA(mhwnd,0,1,“剪切”)AppendMenuA(mhwnd,0,2,...

weixin_29323273的博客 1021

AXI-5.6 Multiple region interfaces

规则:如果从设备实现的区域少于16个,它必须确保对任何访问未支持区域的尝试都能给出符合协议的响应。具体实现方式由设计者定义。场景:一个错误的软件驱动试图向区域 5(该加密加速器未实现)写入数据。实现方式一:提供错误响应(严格模式)行为:加密加速器检测到AxREGION的值大于2,立即对该事务返回一个DECERR(解码错误)或SLVERR(从设备错误)响应。举例:这类似于你访问一个不存在的网站,服务器返回“404 Not Found”。它明确告知请求者:“你要找的东西不存在”。优点安全、清晰。

weixin_44700185的博客 671

菜单绘制遇到的一点问题

WM_CANCELMODE The WM_CANCELMODE message is sent to cancel certain modes, such as mouse capture. For example, the system sends this message to the active window when a dialog box or message box is dis

dengjiang1999的专栏 581

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

trackpopupmenuexl

      函数功能:该函数在指定位置显示快捷菜单,并跟踪菜单项的选择。快捷菜单可出现在屏幕上的任何位置。    函数原型:BOOL TrackPopupMenuEX(HMENU hMenu,UINT uFlags,int x,int y,HWND hWnd,LPTPMPARAMS lptpm);    参数:    hMenu:被显示的快捷菜单的句柄。此句柄可为调用CreatePoPuPMenu

369

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

java制作菜单教程_Toolbar制作菜单条过程详解

文章来源:互联网 作者:ggg82/优快云现在许多用户界面都使用工具栏制作菜单条,小弟最近对此感兴趣,便从网上求助,可是得到的帮助大多是BCGControlBar的源代码或者是SizableRebar的源代码,对于只希望是自己的界面具有该功能的朋友来说,这也许是不错的选择,只要看一下demo,然后直接调用别人的类库就可以了,但对于我等对此话题感兴趣,希望弄懂其来龙去脉的读者来说,直接看这些没有详...

weixin_42508792的博客 233

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Windows Mobile的MenuBar

 先前都是用SHCreateMenuBar来进行MenuBar的创建的,由于CASE需求,现需要改成动态创建MenuBar。使用SHCreateMenuBar创建一个SHCMBF_EMPTYBAR这样的MENUBAR,而后用TB_SETBUTTONINFO来修改它的左右软键是不行的,因为TB_SETBUTTONINFO是对于已经创建了的左右软键来修改他的属性的,应该是用TB_INSERTBUTTO

Jonason123的专栏 1295

Toolbar制作菜单条过程详解

Toolbar制作菜单条过程详解现在许多用户界面都使用工具栏制作菜单条,小弟最近对此感兴趣,便从网上求助,可是得到的帮助大多是BCGControlBar的源代码或者是SizableRebar的源代码,对于只希望是自己的界面具有该功能的朋友来说,这也许是不错的选择,只要看一下demo,然后直接调用别人的类库就可以了,但对于我等对此话题感兴趣,希望弄懂其来龙去脉的读者来说,直接看这些没有详细解释的

黑子工作室 1690

Win32 Api(显示程序系统菜单)

即在程序标题栏上右键时弹出的菜单此菜单会根据窗体的状态而不同,如最大化状态时则如上图1.GetSystemMenuThe GetSystemMenu function allows the application to access the window menu (also known as the system menu or the control menu) for copyin

clingingboy的专栏 1793

java toolbar_Toolbar制作菜单条过程详解

文章来源:互联网 作者:ggg82/优快云现在许多用户界面都使用工具栏制作菜单条,小弟最近对此感兴趣,便从网上求助,可是得到的帮助大多是BCGControlBar的源代码或者是SizableRebar的源代码,对于只希望是自己的界面具有该功能的朋友来说,这也许是不错的选择,只要看一下demo,然后直接调用别人的类库就可以了,但对于我等对此话题感兴趣,希望弄懂其来龙去脉的读者来说,直接看这些没有详...

weixin_34779845的博客 579

Toolbar制作菜单条过程详解 (转)

Toolbar制作菜单条过程详解 (转)[@more@]Toolbar制作菜单条过程详解 现在许多用户界面都使用工具栏制作菜单条,小弟最近对此感兴趣,便从网上求助,可是得到的帮助大多是BCGControlBar的源代码或者是S...

ciya3282的博客 200

WIN32用户界面设计基础之Menus 篇(转)

一个菜单条总是属于一个窗口,当用户选定一个菜单项后,系统向菜单的父窗口发出消息,如果是普通菜单发送WM_COMMAND消息,如果是系统菜单发送WM_SYSCOMMAND消息。当鼠标悬浮在一个有下级菜单的菜单项上时,系统首先向菜单的父窗口发送WM_INITMENUPOPUP消息,然后展开子菜单。每一个菜单条由一个唯一的句柄指向,类型为HMENU。获得一个菜单的句柄使用GetMenu()函数,获得子菜...

weixin_30252155的博客 285

64位Office API声明语句第121讲(终了)

跟我学VBA,我这里专注VBA, 授人以渔。我98年开始,从源码接触VBA已经20余年了,随着年龄的增长,越来越觉得有必要把这项技能传递给需要这项技术的职场人员。希望职场和数据打交道的朋友,都来学习VBA,利用VBA,起码可以提高自己的工作效率,可以有时间多陪陪父母,多陪陪家人,何乐而不为呢?我的教程一共九套,从入门开始一直讲到程序的分发,是学习利用VBA的实用教程。这讲我们继续学习64位Office API声明语句第121讲,这些内容是MS的权威资料,看似枯燥,但对于想学习API函数的朋友是非常有用的。

VBA语言専攻 598

右键菜单_实战经验:右键弹出上下文菜单及菜单点击的处理

问题上下文菜单是非常常见的一种交互界面,用来就近执行一些快捷操作。今天我们就来讲一讲如何在应用程序中添加上下文菜单的支持。使用到的消息Windows中使用WM_CONTEXTMENU消息来表示用户单击了鼠标右键,而根据一般Windows应用程序的惯例,应用程序通常会弹出一个上下文菜单。以下是MSDN对此消息的解释:WM_CONTEXTMENUNotifies a window that the u...

weixin_36378683的博客 792
上一篇: trackpopupmenu
下一篇: translateaccelerator
WinApiExample
博客等级 码龄19年 2粉丝 663原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值