Win32_SDK 屏蔽Edit控件的右键系统菜单方法
找了好久的方法,网上都是基于mfc的方法,现在找到解决方法了,分享给大家,
就是要重新设置Edit控件的回调函数
//Win32 SDK 下Edit控件屏蔽右键系统菜单方法
第一步: //声明保存旧的Edit控件回调函数地址的变量
LONG_PTR oldProc; //新的Edit控件的回调函数声明
LONG_PTR CALLBACK EditProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); 第二步: 在对话框初始函数中添加
BOOL MyWinDialog::OnInitDialog(WPARAM wParam, LPARAM lParam)
{
AfxCWin::OnInitDialog(wParam, lParam);
//TODO:初始化代码 //重新设置Edit控件的回调函数
HWND hEditWnd = ::GetDlgItem(m_hWnd, IDC_EDIT2);
oldProc = SetWindowLongPtr(hEditWnd, GWLP_WNDPROC, (LONG_PTR)EditProc);
//网上用的是GWL_WNDPROC消息,这个在64系统下不能用,所以只好用这了,32和64都能用
} 第三步;在新回调函数中捕捉鼠标右键按下消息 LONG_PTR CALLBACK EditProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_RBUTTONDOWN:
{
//在这添加自己的右键菜单,不添加直接返回1就能屏蔽掉系统菜单了
HMENU hRoot = LoadMenu(hThisApp, MAKEINTRESOURCE(IDR_MENU1));
HMENU hSub = GetSubMenu(hRoot, 0);
POINT pt;
GetCursorPos(&pt);
TrackPopupMenu(hSub, TPM_LEFTBUTTON | TPM_TOPALIGN | TPM_RIGHTBUTTON,
pt.x, pt.y, 0,pMyDlg->GetHwnd(), NULL); DestroyMenu(hRoot);
}
return 1;
default:
break;
}
//最后要返回旧的回调函数地址
return CallWindowProc((WNDPROC)oldProc, hWnd, uMsg, wParam, lParam);
}
Win32_SDK 屏蔽Edit控件的右键系统菜单方法的更多相关文章
- MFC学习之EDIT控件初始化
//四种方法为EDIT控件初始化 //调用系统API HWND hEidt = ::GetDlgItem(m_hWnd,IDC_EDIT1); ::SetWindowText( ...
- 屏蔽webbrowser控件右键的一种方法
原文:屏蔽webbrowser控件右键的一种方法 Option ExplicitPrivate Declare Sub ZeroMemory Lib "KERNEL32" Alia ...
- VC中edit控件使用
SetSel(start,end)作用:定制EDIT的所选择内容.间接地可以用于定位光标位置. 使用例子:EXP1:设置光标CEdit* pEdit=(CEdit*)GetDlgItem(I ...
- Windows获取其他进程中Edit控件的内容
最近做的MFC项目中,有个获取其他进程中Edit控件内容的需求,本来以为是个很简单的问题,但是来来回回折腾了不少时间,发博记录一下. 刚开始拿到这个问题,很自然的就想到GetDlgItemText() ...
- 【aardio】如何让edit控件只能输入数字、小数点及 - 号
import win.ui; /*DSG{{*/ var winform = win.form(parent=...; text="aardio Form";right=349;b ...
- Delphi在Listview中加入Edit控件
原帖 : http://www.cnblogs.com/hssbsw/archive/2012/06/03/2533092.html Listview是一个非常有用的控件,我们常常将大量的数据(如数据 ...
- Iocomp控件教程之Analog Display—模拟显示控件(优于EDIT控件)
Analog Display是简洁的显示控件.用于显示指定准确度和单位的模拟值(实数),能够将准确度设置为0.使显示结果为整数. 第一步:建立MFC对话框 第二步:插入AnalogDisplay控件 ...
- VC++6.0/MFC中如何限制Edit控件输入 例子,只能输入0和1
1.Insert -> New Class -> 在Base Class中选择CEdit,在Name中输入CMyEdit. 2.在左边的ClassView中,右键击CMyEdit,选择Ad ...
- win32 修改Edit控件文本颜色与背景色
#define WM_CTLCOLORMSGBOX 0x0132 #define WM_CTLCOLOREDIT 0x0133 //编辑控件Edit #define WM_CTLCOLORLISTBO ...
- C++ 一个程序获取另一个程序Edit控件的内容
//一个程序获取另一个程序Edit控件的内容 //根据指定程序的标题名获取改程序窗口的句柄 HWND hWnd=::FindWindow(NULL,"zhang001"); if( ...
随机推荐
- Stable Diffusion(三)Dreambooth finetune模型
1. Dreambooth Dreambooth可以把你任何喜欢的东西放入Stable Diffusion模型. 1.1. 什么是Dreambooth 最初由谷歌在2022年发布,是对SD模型的fin ...
- Ubuntu 22.04单机部署K3s
安装docker 从docker官网获取最新的一键安装脚本,安装docker运行环境 curl -fsSL https://get.docker.com -o get-docker.sh sudo s ...
- Linux系统基本介绍
一.Linux系统基本介绍 [1].Linux操作系统特点 多任务的操作系统 多任务操作系统 严格区分大小写 Linux一切皆文件 所有文件的起点都是"/"根目录 对于Linux操 ...
- 搭建hadoop集群关键步骤--以三节点为例
搭建三节点的hadoop集群: 要求: 主机名称 备注 IP地址 功能 hadoop01 Master 主节点 192.168.211.134 NameNode.DataNode.ResourceMa ...
- 深度学习领域的名词解释:SOTA、端到端模型、泛化、RLHF、涌现 ..
SOTA (State-of-the-Art) 在深度学习领域,SOTA指的是"当前最高技术水平"或"最佳实践".它用来形容在特定任务或领域中性能最优的模型或方 ...
- Spring Reactor基本介绍和案例
1. Reactor 对比 1.1 Reactor 线程模型 Reactor 线程模型就是通过 单个线程 使用 Java NIO 包中的 Selector 的 select()方法,进行监听.当获取到 ...
- 自动修改网卡 IP
1. 讲个故事 我的一同事需要调试 PLC,需要经常修改电脑 IP 在各个工位的 PLC 间来回连接.于是,每次需要改变 IP 的时候都是手动点开网络管理界面然后再修改.终于有一天,一天改 80 次 ...
- 全网最适合入门的面向对象编程教程:14 类和对象的 Python 实现-类的静态方法和类方法,你分得清吗?
全网最适合入门的面向对象编程教程:14 类和对象的 Python 实现-类的静态方法和类方法,你分得清吗? 摘要: 本文主要介绍了Python中类和对象中的类方法和静态方法,以及类方法和静态方法的定义 ...
- 介绍几款强大实用的 IDEA 插件,助力大家开发【工欲善其事必先利其器】
俗话说:"工欲善其事必先利其器",本问介绍几款强大实用的 IDEA 插件,助力大家开发. 希望大家做一个聪明又努力的人,而不只是一个努力的人. Alibaba Java Codin ...
- linux系统&自动清理日志实现脚本
文章来源:https://blog.csdn.net/lakelise/article/details/93711932 编写清理脚本,添加到定时任务中:创建可执行文件cd /hometouch cl ...