テストとして以下のプログラムを組んだのですがフルスクリーン表示が出来ず困っています
#include "DxLib.h"
#define SCREEN_W (800) // 解像度の横幅
#define SCREEN_H (600) // 解像度の縦幅
#define SCREEN_CB (16) // 色ビット数
#define WIND_W (800) // ウィンドウの横幅
#define WIND_H (600) // ウィンドウの縦幅
#define WIND_SCREEN (2) // 0:フルスクリーン, 1:ウィンドウモード, 2:任意
struct{
int w, h; // 縦横
int cb; // 色ビット数
int scr_flag; // ウィンドウモードにするか
}window={ WIND_W, WIND_H, SCREEN_CB, WIND_SCREEN };
int Window_Create(){
// 任意の場合メッセージボックスからウィンドウ設定
if( window.scr_flag == 2 ){
int flag = MessageBox( NULL,
TEXT( "ウィンドウモードで表示しますか?" ),
TEXT( "画面設定" ),
MB_YESNO | MB_ICONQUESTION );
if( flag == IDNO ) window.scr_flag = 0;
else window.scr_flag = 1;
}
// 解像度を設定
if( SetGraphMode( WIND_W, WIND_H, window.cb ) != 0 )
return -1;
// yesだったらウィンドウモードに設定
if( window.scr_flag == 1 ){
// ウィンドウサイズを設定
if( SetWindowSize( window.w, window.h ) != 0 ) return -1;
// ウィンドウモードへ変更
if( ChangeWindowMode( TRUE ) != 0 ) return -1;
}
// DXライブラリの初期化
if ( DxLib_Init() != 0 )
return -1;
// 描画先を裏画面に設定
if( SetDrawScreen( DX_SCREEN_BACK ) != 0 )
return -1;
return 0;
}
int WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR, int ){
Window_Create();
while( !ScreenFlip() && !ProcessMessage() && !ClearDrawScreen() && CheckHitKey( KEY_INPUT_ESCAPE )==0 ){
// FPS値を描画
DrawFPS( SCREEN_W/2, SCREEN_H/2, TRUE );
}
DxLib_End();
return 0;
}
window.scr_flagに1が入り、SetWindowSize()とChangeWindowMode()でウィンドウモードとサイズを変更
「いいえ」を選択するとwindow.scr_flagには0が入り、そのままif文をスルーして
800x600,16bit設定のフルスクリーン画面が表示されるだろうと考えていたのですが…
SetGraphMode() ←これが怪しいかなぁ…と薄々感じているのですが
この関数の用途は間違っているのでしょうか?