我设了一个截获消息的钩子
SetWindowsHookEx(WH_GETMESSAGE,(HOOKPROC)GetMsgProc,theApp.m_hInstance,0)
可是不知道怎么在GetMsgProc的lParam参数里得到message(如WM_SIZE) 
大哥们给我讲讲吧

解决方案 »

  1.   

    你在哪里设置的钩子?
    直接写 if (WM_SIZE == lParam) 就可以用来判断了
      

  2.   

    lParam是个MSG结构的指针,MSG结构中的message成员就是消息的类型。
      

  3.   

    if((MSG*)lParam->message==WM_SIZE)
    {
    ......
    }
      

  4.   

    在dll里设的
    if (WM_SIZE == lParam) 这样好象判断不了啊
    楼上的意思是不是这样啊
    (MSG *)lParam->message==WM_SIZE
      

  5.   

    有错误啊
     error C2227: left of '->message' must point to class/struct/union
      

  6.   

    ((MSG*)lParam)->message==WM_SIZE试试
      

  7.   

    MSG *pMsg=(MSG*)lParam;
    if(pMsg->message==WM_SIZE)
    {}
      

  8.   

    MSG *pMsg=(MSG*)lParam;
    if(pMsg->message==WM_SIZE)
    {}
    这样好象也不行啊
      

  9.   

    MSG *pMsg=(MSG*)lParam;
    if(pMsg->message==WM_SIZE)
    {}
    这样好象也不行啊
      

  10.   

    就是没有反应啊   我把两个pMsg->message和WM_SIZE显示出来 发现值不一样啊
      

  11.   

    这说明你要拦的不是WM_SIZE呀,你要拦什么消息
    拦别的程序要全局钩子
      

  12.   

    写个DLL实现钩子过程
    然后在你的进程中设置钩子
    几段代码贴例子太麻烦了,你自己上MSDN找帮助对着做