我通过子类化拦截一个窗口的消息.如果我要防止这个窗口最小化,那要拦截哪个消息?以下代码不起作用:
MainWndProc =(WNDPROC)SetWindowLong(hWndGame,GWL_WNDPROC,(LONG)MyWndProc);LRESULT CALLBACK MyWndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{

switch(Msg)
{
case WM_WINDOWPOSCHANGING:
break;
default:
return CallWindowProc(GameWndProc, hWnd, Msg, wParam, lParam);
}
return 0;
}

解决方案 »

  1.   

    WM_SYSCOMMAND判断wParam = SC_MINIMIZE,如果不需要最小化,WM_SYSCOMMAND直接返回0
      

  2.   

    如果仅仅是防止窗口最小化,除了拦截WM_SYSCOMMAND消息外,还可以在PreCreateWindow中屏蔽掉窗体的最下化按钮。
      

  3.   

    WM_SYSCOMMAND
    其中,wParam = SC_MINIMIZE  ,这个消息,就是最小化消息,直接对它返回TRUE即可。