"SetWindowUserCloseEnableFlag"関数と"GetWindowUserCloseFlag"関数を使用すれば可能だと思います。
"SetWindowUserCloseEnableFlag"関数にFALSEを設定すると、Alt+F4やCloseボタンで終了しなくなります。
"GetWindowUserCloseFlag"関数は終了イベントが発生するとTRUEを返します。
引数にTRUEを設定すると、次回また終了イベントが発生するまでFALSEを返すようになります。
//-- 以下サンプル --//
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
SetWindowUserCloseEnableFlag( FALSE );
ChangeWindowMode( TRUE );
if ( DxLib_Init( ) == -1 ) return -1;
SetDrawScreen( DX_SCREEN_BACK );
while ( ProcessMessage( ) == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 )
{
if ( GetWindowUserCloseFlag( FALSE ) ) {
if ( CheckHitKey( KEY_INPUT_N ) ) {
GetWindowUserCloseFlag( TRUE );
}
else if ( CheckHitKey( KEY_INPUT_Y ) ) {
break;
}
ClearDrawScreen( );
DrawString( 0, 0, "終了処理中 y/n", GetColor( 255, 255, 255 ) );
ScreenFlip( );
continue;
}
ClearDrawScreen( );
DrawString( 0, 0, "通常処理中", GetColor( 255, 255, 255 ) );
ScreenFlip( );
}
DxLib_End( );
return 0;
}
※バグっていたので修正しました。
※馬鹿なことをやっていたのでさらに修正しました。