非公開関数の GetDisplayModeNum と GetDisplayMode を使用することで可能です
// 変更可能なディスプレイモードの数を取得する
int GetDisplayModeNum( void ) ;
// 変更可能なディスプレイモードの情報を取得する( ModeIndex は 0 〜 GetDisplayModeNum の戻り値-1 )
DISPLAYMODEDATA GetDisplayMode( int ModeIndex ) ;
GetDisplayMode の戻り値である DISPLAYMODEDATA 構造体は以下のように定義されています
// 画面モード情報データ型
struct DISPLAYMODEDATA
{
int Width ; // 水平解像度
int Height ; // 垂直解像度
int ColorBitDepth ; // 色ビット深度
int RefreshRate ; // リフレッシュレート( -1 の場合は規定値 )
} ;
この関数を使用して画面に使用できる画面モードの一覧を表示するプログラムは以下のようになりますので、
よろしければ参考にしてください m(_ _)m
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
DISPLAYMODEDATA ModeData ;
int i, ModeNum ;
// ウインドウモードで起動
ChangeWindowMode( TRUE );
// DXライブラリの初期化
if( DxLib_Init() < 0 ) return -1;
// フォントサイズを小さくする
SetFontSize( 10 ) ;
// フォントの線を細くする
SetFontThickness( 0 ) ;
// ディスプレイモードの数を取得する
ModeNum = GetDisplayModeNum() ;
// ディスプレイモードの数だけループする
for( i = 0 ; i < ModeNum ; i ++ )
{
// ディスプレイモードの情報を取得する
ModeData = GetDisplayMode( i ) ;
// 画面にディスプレイモードの情報を描画する
DrawFormatString( i / 40 * 128, ( i % 40 ) * 11, GetColor( 255,255,255 ), "%dx%d %dbit %dHz",
ModeData.Width, ModeData.Height, ModeData.ColorBitDepth, ModeData.RefreshRate ) ;
}
// キーが押されるまで待つ
WaitKey() ;
// DXライブラリの後始末
DxLib_End();
// ソフトの終了
return 0;
}