我再spy++中查看notepad的右键弹出菜单消息时,发现有WM_ENTERIDLE
WM_ENTERIDLE fuSource:MSGF_MENU hwnd:000705B6
1.msdn上说:WM_ENTERIDLE消息的wParam表示:指名消息是否是正在被显示的对话框或菜单进入空闲状态的结果,它是下列值中的一个:
MSGF_DIALOGBOX:因为对话框正被显示,系统正空闲。
MSGF_MENU:因为菜单正被显示,系统正空闲。
lParam参数表示:如果wParam为MSGF_DIALOGBOX,则为含有对话框的句柄;如果wParam为MSGF_MENU,则为包含正被显示菜单的窗口的句柄。
按照这个理解hwnd:000705B6应该是notepad的那个edit的句柄,但是spy++里查看那个edit句柄并不是000705B6
这个消息的hwnd:000705B6到底是谁的句柄呢? 2.
还有就是如何才能得到右键弹出的那个菜单的句柄呢?有经验的讨论讨论啊!
WM_ENTERIDLE fuSource:MSGF_MENU hwnd:000705B6
1.msdn上说:WM_ENTERIDLE消息的wParam表示:指名消息是否是正在被显示的对话框或菜单进入空闲状态的结果,它是下列值中的一个:
MSGF_DIALOGBOX:因为对话框正被显示,系统正空闲。
MSGF_MENU:因为菜单正被显示,系统正空闲。
lParam参数表示:如果wParam为MSGF_DIALOGBOX,则为含有对话框的句柄;如果wParam为MSGF_MENU,则为包含正被显示菜单的窗口的句柄。
按照这个理解hwnd:000705B6应该是notepad的那个edit的句柄,但是spy++里查看那个edit句柄并不是000705B6
这个消息的hwnd:000705B6到底是谁的句柄呢? 2.
还有就是如何才能得到右键弹出的那个菜单的句柄呢?有经验的讨论讨论啊!
解决方案 »
- 新人在用ADO操作Access和MFC编写一个成绩管理系统,但是遇见了问题,求帮助,给100分
- 如何动态调用自己写的dll中的类函数啊?
- 添加ACCESS数据DSN时,发生系统错误,说是“无法加载 ACCESS ODBC 数据源安装例程,因为存在系统错误180”,怎么解决??
- 数据库问题!急呀
- 关于SDI中对话框和VIEW上的文本控件之间的数据交换,请各位指教!!
- 文件夹图标
- 求教,怎样创建浮动工具栏,我太穷了
- MM问我紧急问题:怎样把表格上的两行字显示成不同的颜色???
- 呵呵,浪费点信用分
- Wininet api回调函数进入死循环
- 自定义结构体转换BYTE数组,在线等
- 2010总结——从技术到管理彻底转型的典型(兄弟们这么说的)
2. 你上面不都说了说了吗?WM_ENTERIDLE消息.WM_ENTERIDLE 消息的时候拿这个窗口句柄与鼠标下的窗口句柄进行比较WindowFromPoint();
我用如下代码打印出句柄: HWND hWnd = FindWindow("Notepad",NULL);
HWND hedit = FindWindowEx(hWnd,NULL, "Edit",NULL); POINT pt;
pt.x = 35;
pt.y = 282; if (ClientToScreen(hedit,&pt))
{
HWND hwnd11 = NULL;
if(hwnd11 = WindowFromPoint(pt))
{
printf("handle: %x",hwnd11);
}
}结果就是edit的句柄, 不是(WM_ENTERIDLE fuSource:MSGF_MENU hwnd:000705B6)这个消息显示的句柄,而且WM_ENTERIDLE消息里的那个句柄 每次右键弹出菜单时 都是不一样的 是在搞不懂这是谁的句柄了.
我认为属于 windows消失
摘自 msdn
Res
You can suppress the WM_ENTERIDLE message for a dialog box by creating the dialog box with the DS_NOIDLEMSG style. Requirements
Windows NT/2000/XP: Included in Windows NT 3.1 and later.
Windows 95/98/Me: Included in Windows 95 and later.
Header: Declared in Winuser.h; include Windows.h.