ご返信が遅くなり申し訳ありません
手元で以下のような LoadDivGraph のサンプルプログラムに手を加えて
SetChangeScreenModeGraphicsSystemResetFlag(FALSE); を使用した状態で
スペースキーを押すたびに画面解像度を変更するプログラムを組んでみたのですが、
LoadDivGraph で読み込んだ画像は問題なく復帰していました
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
int GHandle[ 10 ] ;
int i ;
int Flag = FALSE ;
// ウィンドウモードで起動
ChangeWindowMode( TRUE ) ;
// DXライブラリ初期化処理
if( DxLib_Init() == -1 )
{
return -1 ;
}
// 画面モードが変更されても画像が解放されないようにする
SetChangeScreenModeGraphicsSystemResetFlag( FALSE ) ;
// 描画先を裏画面に変更
SetDrawScreen( DX_SCREEN_BACK ) ;
// BMP画像のメモリへの分割読み込み
LoadDivGraph( "test2.bmp" , 10 , 4 , 3 , 48 , 56 , GHandle ) ;
// ロードしたグラフィックのアニメーション
i = 0 ;
while( ProcessMessage() == 0 )
{
// スペースキーが押されたら解像度を変更する
if( GetInputChar( TRUE ) == ' ' )
{
if( Flag == FALSE )
{
SetGraphMode( 800, 600, 32 ) ;
Flag = TRUE ;
}
else
{
SetGraphMode( 640, 480, 32 ) ;
Flag = FALSE ;
}
}
// 画面の初期化
ClearDrawScreen() ;
// グラフィックの描画(『DrawGraph』使用)
DrawGraph( 0 , 0 , GHandle[ i ] , FALSE ) ;
// アニメーションパターンナンバーを変更
i ++ ;
if( i == 10 ) i = 0 ;
// 裏画面の内容を表画面に反映
ScreenFlip() ;
// 一定時間待つ
WaitTimer( 100 ) ;
}
// 読み込んだ画像のグラフィックハンドルを削除
for( i = 0 ; i < 10 ; i ++ )
{
DeleteGraph( GHandle[ i ] ) ;
}
// DXライブラリ使用の終了処理
DxLib_End() ;
// ソフトの終了
return 0 ;
}
よろしければ Pikaさんの環境でも上記のプログラムであれば LoadDivGraph で読み込んだ画像が復帰するか
試してみていただけないでしょうか? m(_ _)m