Mynkさん始めまして、DXライブラリの管理人です。
フルスクリーンで DirectX 以外の機能(GDI)で描画される
ダイアログなどを表示する場合は、ダイアログを開く前に
非公開関数の
// GDI描画を使用するかどうかを変更する
int SetUseGDIFlag( int Flag );
という関数に TRUE を渡して呼んでおく必要があります。
(GDI描画を有効にした場合では DirectX の性能をフルに出せないので、
ダイアログが閉じた後は FALSE を渡して呼びます)
また、ダイアログの親ウインドウをDXライブラリが動作している
ソフトのウインドウにする必要がありますので、親ウインドウに
非公開関数の
// メインウインドウのハンドルを取得する
HWND GetMainWindowHandle( void );
で取得できるハンドルを設定する必要があります。
というのを踏まえて GetOpenFileName でBMPファイルを選択して、
選択されたファイルを画面に表示するというサンプルプログラムが
以下の様になりますので、宜しければご覧下さい。m(_ _)m
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
char fn[256] ;
OPENFILENAME ofn ;
// DXライブラリの初期化
if( DxLib_Init() < 0 ) return -1 ;
// GDIを有効にする
SetUseGDIFlag( TRUE );
// マウスカーソルを表示する
SetMouseDispFlag( TRUE );
// ファイルを選択してもらう
{
memset( &ofn, 0, sizeof( OPENFILENAME ) ) ;
fn[0] = '\0' ;
ofn.lStructSize = sizeof( OPENFILENAME ) ;
ofn.hwndOwner = GetMainWindowHandle() ; // 親ウインドウは GetMainWindowHandle で取得できるウインドウハンドルにする
ofn.lpstrFilter = "BMP(*.bmp)\0*.bmp" ;
ofn.nFilterIndex = 1 ;
ofn.lpstrFile = fn ;
ofn.nMaxFile = 256 ;
ofn.lpstrTitle = "ファイルの選択" ;
ofn.lpstrDefExt = "bmp";
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY ;
GetOpenFileName( &ofn ) ;
}
// GDIを無効にする
SetUseGDIFlag( FALSE );
// 選択されたファイルを読み込んで表示する
LoadGraphScreen( 0, 0, ofn.lpstrFile, FALSE );
// キー入力待ち
WaitKey();
// DXライブラリの後始末
DxLib_End() ;
// ソフトの終了
return 0 ;
}