查看事件发生顺序的方法
2006-11-05 13:07
260 查看
可以在窗体的消息处理函数中:
LRESULT CSkinWnd::WindowProc(UINT msg, WPARAM wp, LPARAM lp)
{
static int i;
char buf[32];
sprintf(buf,"%d 0x%04x/n",i++,msg);
OutputDebugString(buf);
。。。。。。
}
这样就可以将消息ID打印出来,再到VC中查到具体的ID对应的消息
如果是dialog等,可以改变窗体的消息响应函数到自己定义的函数,以方便查看。方法如下:
SetWindowLong(hwnd, GWL_WNDPROC, (DWORD)HookWndProc);
hwnd: 要改变的窗体句柄
HookWndProc:消息处理函数,原型如上
利用这种方法跟踪dialog的启动得到如下结果:
0 0x0046 WM_WINDOWPOSCHANGING
1 0x0047 WM_WINDOWPOSCHANGED
2 0x0003 WM_MOVE
3 0x007f WM_GETICON
4 0x0083 WM_NCCALCSIZE
5 0x0046
6 0x001c WM_ACTIVATEAPP
7 0x0086 WM_NCACTIVATE
8 0x0006 WM_ACTIVATE
9 0x036e
10 0x0400 WM_USER
11 0x0018 WM_SHOWWINDOW
12 0x0046
13 0x0085 WM_NCPAINT
14 0x0014 WM_ERASEBKGND
15 0x0136 WM_CTLCOLORDLG
16 0x0047 WM_WINDOWPOSCHANGED
17 0x000f WM_PAINT
18 0x0135 WM_CTLCOLORBTN
19 0x0135
20 0x0135
21 0x007f
22 0x007f
23 0x007f
24 0x036a
25 0x036a
得出常用事件的顺序为:
WM_MOVE
WM_ACTIVATE
WM_SHOWWINDOW
WM_NCPAINT
WM_ERASEBKGND
WM_CTLCOLORDLG
WM_PAINT
WM_CTLCOLORBTN
LRESULT CSkinWnd::WindowProc(UINT msg, WPARAM wp, LPARAM lp)
{
static int i;
char buf[32];
sprintf(buf,"%d 0x%04x/n",i++,msg);
OutputDebugString(buf);
。。。。。。
}
这样就可以将消息ID打印出来,再到VC中查到具体的ID对应的消息
如果是dialog等,可以改变窗体的消息响应函数到自己定义的函数,以方便查看。方法如下:
SetWindowLong(hwnd, GWL_WNDPROC, (DWORD)HookWndProc);
hwnd: 要改变的窗体句柄
HookWndProc:消息处理函数,原型如上
利用这种方法跟踪dialog的启动得到如下结果:
0 0x0046 WM_WINDOWPOSCHANGING
1 0x0047 WM_WINDOWPOSCHANGED
2 0x0003 WM_MOVE
3 0x007f WM_GETICON
4 0x0083 WM_NCCALCSIZE
5 0x0046
6 0x001c WM_ACTIVATEAPP
7 0x0086 WM_NCACTIVATE
8 0x0006 WM_ACTIVATE
9 0x036e
10 0x0400 WM_USER
11 0x0018 WM_SHOWWINDOW
12 0x0046
13 0x0085 WM_NCPAINT
14 0x0014 WM_ERASEBKGND
15 0x0136 WM_CTLCOLORDLG
16 0x0047 WM_WINDOWPOSCHANGED
17 0x000f WM_PAINT
18 0x0135 WM_CTLCOLORBTN
19 0x0135
20 0x0135
21 0x007f
22 0x007f
23 0x007f
24 0x036a
25 0x036a
得出常用事件的顺序为:
WM_MOVE
WM_ACTIVATE
WM_SHOWWINDOW
WM_NCPAINT
WM_ERASEBKGND
WM_CTLCOLORDLG
WM_PAINT
WM_CTLCOLORBTN
相关文章推荐
- 事件之onTouch方法的执行过程 及和 onClick执行发生冲突的解决办法
- JS阻止冒泡事件以及默认事件发生的简单方法
- # include <errno.h >查看错误代码errno是调试程序的一个重要方法。当Linux C API函数发生异常时,一般会将errno变量赋值一个整数,不同的值表示不同的含义,可以通过查看
- try...catch...finally中try块发生的事件顺序
- mysql查看事件是否开启,设置启动时自动开启方法
- jQuery:事件发生的顺序
- GridView 控件事件发生顺序
- 查看android项目中方法执行顺序
- onclick事件和超链接请求指向href发生顺序
- Visual Event插件----查看html元素绑定的事件与方法的利器
- android按键事件和触屏事件(一)-几个重要方法的传递顺序
- Pb 事件发生顺序
- 查看 方法调用顺序
- GridView 控件事件发生顺序
- 查看html元素绑定的事件与方法的利器
- Oracle中发生表加锁、死锁的原因,查看,与解决方法
- 母版页与内容页合并后事件的发生顺序
- 特定视图呈现时发生的事件顺序
- 窗口事件的发生顺序
- 从Request到Response之间的所有事件发生的顺序