あーもう、どうしよう。
フルスクリーンの時はウインドウを動かせないようにしてしまおう。
フルスクリーンの時は、非クライアント領域で起きたメッセージはクライアント領域で起きたことにしてしまおう。
/********************************************************************************/
/* WndProc ウインドウプロシージャ */
/********************************************************************************/
HRESULT CALLBACK WndProc ( HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam )
{
switch ( message )
{
// 一定時間ごとに呼ばれる。
case WM_TIME_ELAPSED :
D3Dlap.bInMainLoop = TRUE ; // ここ以外で TRUE にしては 駄目!!
MainLoop ();
D3Dlap.bInMainLoop = FALSE ;
break ;
case WM_NCHITTEST :
// フルスクリーン時において、発生したメッセージを
// ウィンドウのクライアント領域で起きたものとする。
// これによって、フルスクリーンのときにウインドウが移動されたりしない。
if ( D3Dlap.bFullScreenMode )
return (LRESULT) HTCLIENT ;
break ;
case WM_MOVE :
D3DLAP_OnMove ( hwnd );
break ;
case WM_KEYDOWN :
switch ( wparam )
{
case VK_ESCAPE :
PostMessage ( hwnd, WM_CLOSE, 0, 0 );
break ;
}
break ;
case WM_DESTROY :
PostQuitMessage ( 0 );
break ;
}
return DefWindowProc ( hwnd, message, wparam, lparam );
}
さて、結果は・・・・
・・・
おお、ウインドウ動かないぞッ!!
よっしゃ! うまくいった!!
わーい。
< Back to Diary.