查看事件发生顺序的方法

可以在窗体的消息处理函数中:

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

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值