はじめまして。
今、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 ;
}
------------------------------------------
以上です。なぜちらついてしまうのか分かりません。
初歩的かもしれませんが、考えられる理由を教えていただきたいです。
よろしくお願いします。