我通过子类化拦截一个窗口的消息.如果我要防止这个窗口最小化,那要拦截哪个消息?以下代码不起作用:
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;
}
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;
}
其中,wParam = SC_MINIMIZE ,这个消息,就是最小化消息,直接对它返回TRUE即可。