始めまして、DXライブラリの管理人です。
DXライブラリを使用して作成したソフトは×ボタンを押してウインドウを
閉じると ProcessMessage 関数が -1 を返すようになりますが、プログラムは
そのまま走り続けますので、KeyInputString の後 ProcessMessage 関数を呼んで
-1 が返ってくるようでしたらなるべく何もせずにソフトを終了するようにすれば
描画物が画面に残ることは無くなります。
// KeyInputString 関数のサンプルに、ProcessMessage が -1 を返した
// 場合の処理を追加したもの
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
char Name[ 31 ] ;
// ウインドウモードで起動
ChangeWindowMode( TRUE );
// DXライブラリの初期化
if( DxLib_Init() == -1 ) return -1 ;
// 名前入力指示文字列の描画
DrawString( 0 , 0 , "名前を入力してください" , GetColor( 255 , 255 , 255 ) ) ;
// 名前の入力
KeyInputString( 0 , 16 , 30 , Name , FALSE );
// ウインドウが閉じられていない場合のみこの後の処理を実行する
if( ProcessMessage() != -1 )
{
// 画面の初期化
ClearDrawScreen() ;
// 名前の表示
DrawString( 0 , 0 , "あなたの名前は" , GetColor( 255 , 255 , 255 ) ) ;
DrawString( 0 , 16 , Name , GetColor( 255 , 255 , 255 ) ) ;
// キー入力待ち
WaitKey() ;
}
// DXライブラリの使用終了
DxLib_End() ;
// 終了
return 0 ;
}
と、ここまで書いてから自分の環境で試してみた所、KeyInputString 内で
ClearDrawScreen を呼んでしまっていて、画像は残らないもののウインドウが
あった部分に黒い四角が残るようになってしまっていましたので、ProcessMessage
関数の戻り値を確認する処理を追加するのと併せて、修正したこちらのバージョンを
お使いになってみて下さい。m(_ _;m
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe //VC用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe //BCC用
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)