トップページ > 過去ログ > 記事閲覧
ウィンドウモード変更で画面がちらつきます
名前:hennlu 日時: 2009/07/26 00:31

はじめまして。 今、DXライブラリを使用させてもらって画像を表示するプログラムを作成しています。 そしてこのプログラムに、ウィンドウモードとフルスクリーンモード切替機能(以下のコードでは、Wを押すと変更)、 背景色変更機能(以下のコードでは、Zを押すと変更)をつけようとしています。 しかし、以下に示すようなコードを実行すると、起動時のウィンドウは正常に表示されるのですが、 ウィンドウモードからフルスクリーンモードに変更したあと、画面がちらついてしまいます。 また、その状態からウィンドウモードに戻しても画面がちらついてしまいます。 これがそのコードです。 --------------------------------------------- #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){ int white,blue,green,red; int back=0; int flag=0; if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1; //各色取得 white=GetColor(255,255,255); blue=GetColor(0,0,255); green=GetColor(0,255,0); red=GetColor(255,0,0); SetDrawScreen( DX_SCREEN_BACK ) ; while(!ProcessMessage() && !ClearDrawScreen() && !CheckHitKey(KEY_INPUT_ESCAPE)){ //ウィンドウサイズ変更 if(CheckHitKey(KEY_INPUT_W)==1){ if(flag==0){ ChangeWindowMode(FALSE);//フルスクリーンに変更 flag=1; }else if(flag==1){ ChangeWindowMode(TRUE);//ウィンドウに変更 flag=0; } } //背景色変更 if(CheckHitKey(KEY_INPUT_Z)==1)back+=1;//Zが押されたら変更 if(back>=5)back=0; switch(back){ case 0: break; case 1: DrawBox(0,0,640,480,white,TRUE);//白色に break; case 2: DrawBox(0,0,640,480,blue,TRUE);//青色に break; case 3: DrawBox(0,0,640,480,green,TRUE);//緑色に break; case 4: DrawBox(0,0,640,480,red,TRUE);//赤色に break; default: DrawString(170,240,"error!!!",white); break; } LoadGraphScreen( 0 , 0 , "bullet.bmp" , TRUE ) ;//画像(bullet.bmp)を表示 ScreenFlip(); } DxLib_End() ; return 0 ; } ------------------------------------------ 以上です。なぜちらついてしまうのか分かりません。 初歩的かもしれませんが、考えられる理由を教えていただきたいです。 よろしくお願いします。

Page: 1 |

Re: ウィンドウモード変更で画面がちらつきます ( No.1 )
名前:K_T 日時:2009/07/26 14:28

WindowModeを変更した後、SetDrawScreenがリセットされて、 表画面に表示されているからではないですか?
Re: ウィンドウモード変更で画面がちらつきます ( No.2 )
名前:hennlu 日時:2009/07/26 17:01

K_Tさん、そのようでした。 モード変更後にSetDrawScreenを裏画面にセットしたら直りました。 リファレンスにも<注意>に書いてありましたね。 あせって見落としていました。 以後このようなことがないようにします。 K_Tさん、教えて下さって有難うございました。

Page: 1 |