我在写一个钩子程序,发现不同语言编译出来的单击button时的消息参数好象是不一样的//此过程是在一个dll中窗口钩子
LRESULT CALLBACK CallWndProc(int nCode, WPARAM wParam, LPARAM lParam)
{
CWPSTRUCT *p = (CWPSTRUCT *)lParam;
// 捕获单击按钮的消息,这里如是挂在VB,VC写的程序时,wParam=1可捕获单击按钮的消息
//如是挂在.NET,Dephi写的程序时,wParam=1捕获不了单击按钮的消息,这里应怎么写才能捕获
//不同语言编译的单击button消息?
if (p->message == WM_COMMAND && LOWORD(p->wParam)==?)
{
//执行代码
............
}
}
LRESULT CALLBACK CallWndProc(int nCode, WPARAM wParam, LPARAM lParam)
{
CWPSTRUCT *p = (CWPSTRUCT *)lParam;
// 捕获单击按钮的消息,这里如是挂在VB,VC写的程序时,wParam=1可捕获单击按钮的消息
//如是挂在.NET,Dephi写的程序时,wParam=1捕获不了单击按钮的消息,这里应怎么写才能捕获
//不同语言编译的单击button消息?
if (p->message == WM_COMMAND && LOWORD(p->wParam)==?)
{
//执行代码
............
}
}
解决方案 »
- mfc的工具栏图标替换
- 今天用Windows7 64位的系统,在VC6下编译以前的一个程序,结果在其它XP的机器上运行不了了?各位大侠进来一下呀
- 显示图片疑惑
- 关于鼠标和CtreeCrl的问题
- 快加群:23998252(软件开发者群5) 晚了进不了
- OnTimer(UINT nIDEvent)函数的激发问题
- 我的VC程序使用 ADO 访问 Access 2003 数据库,发布之后在没有安装 Access 2003 的机器上运行不正常,应该怎么办?
- 如何彻底隐藏文件夹?
- 真诚请教:
- 谁有《Windows 95 系統程式設計 大奧秘》的源码?
- 帮帮忙!!!
- Clistview 和clistctrl的区别?
还有为什么OutputDebugString("")在dll中不输出内容呢?
对于WM_COMMAND
wParam
The high-order word specifies the notification code if the message is from a control. If the message is from an accelerator, this value is 1. If the message is from a menu, this value is zero.
The low-order word specifies the identifier of the menu item, control, or accelerator. lParam
Handle to the control sending the message if the message is from a control. Otherwise, this parameter is NULL
那么我在找一个.net程序的某个控件的消息时,是不是应该这样写?
LRESULT CALLBACK CallWndProc(int nCode, WPARAM wParam, LPARAM lParam)
{
CWPSTRUCT *p = (CWPSTRUCT *)lParam;
if (p->message == WM_COMMAND &&
LOWORD(p->wParam)==(UINT_PTR)FindWindowEx (g_hwnd,NULL, "WindowsForms10.BUTTON.app3","发送"))
{
..............
}
可是这样依然不行啊.....
得到一个窗口句柄,用spy++再找到控件句柄,看是否一样
LOWORD(p->wParam)==(UINT_PTR)FindWindowEx (g_hwnd,NULL, "WindowsForms10.BUTTON.app3","发送"))
正确的应该是怎么转?
FindWindowEx返回hwnd,p->wParam返回UINT_PTR,如果不转,编译通不过,我试了
你只要这么写就行了:
if (p->message == WM_COMMAND &&
LOWORD(p->wParam)==(WORD)FindWindowEx (g_hwnd,NULL, "WindowsForms10.BUTTON.app3","发送"))
现还有个问题想向您请教一下:如果一个窗体上有多个TextBox,如txt1,txt2,tx3...
我怎样才能找到我想要的某个TextBox的句柄(如txt2),用GetWindws?(这个好象只能找到第一个?)