ウィンド右上の閉じるボタンについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ぬこ

ウィンド右上の閉じるボタンについて

#1

投稿記事 by ぬこ » 12年前

お世話になっております。
ちょっと疑問が生じまして、わかる方いましたら返答いただけるとありがたいです。

dxlibを用いて作成したアプリケーションの右上の閉じる(×)ボタンについてですが、
このボタンを押下されたとき、終了する前に終了処理を追加したいのですが方法がわかりません。

ご存知のかたがいらっしゃいましたらアドバイスをいただけたらと思います。
よろしくお願いします。

アバター
a5ua
記事: 199
登録日時: 13年前

Re: ウィンド右上の閉じるボタンについて

#2

投稿記事 by a5ua » 12年前

公式リファレンスには書かれていませんが、
SetWindowUserCloseEnableFlag
GetWindowUserCloseFlag
といった関数を使えば、実現できると思います。

参考までにコードを書いてみました。

コード:

#include "DxLib.h"

int WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
{
    ChangeWindowMode(TRUE);
    if (DxLib_Init() != 0) return -1;
	SetDrawScreen(DX_SCREEN_BACK);

	// ユーザーが×ボタンを押しても自動的に終了しないようにする
	SetWindowUserCloseEnableFlag(FALSE);
 
    while (ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0){
		ClearDrawScreen();

		// ×ボタンが押されたかどうかを取得する
		if (GetWindowUserCloseFlag(TRUE)) {
			// 終了確認処理(「はい」が押されたら終了)
			if (MessageBox(GetMainWindowHandle(), _T("終了しますか?"), _T("確認"), MB_YESNO) == IDYES) {
				break;
			} else {
				printfDx(_T("終了がキャンセルされました\n"));
			}
		}
		ScreenFlip();
    }
 
    DxLib_End();
	
	return 0;
}

アバター
nullptr
記事: 239
登録日時: 12年前

Re: ウィンド右上の閉じるボタンについて

#3

投稿記事 by nullptr » 12年前

http://hpcgi2.nifty.com/natupaji/bbs/pa ... st&no=1602
公式の板のです。こちらも参考になるかと。
 
 
✜ で C ご ✜
: す + 注 :
¦ か + 文 ¦
?
Is the は :
order C++? ✜
     糸冬   
  ――――――――
  制作・著作 NHK
 
 

ぬこ

Re: ウィンド右上の閉じるボタンについて

#4

投稿記事 by ぬこ » 12年前

>> a5ua様、 lowe様

ご回答ありがとうございます。
御二方ともサンプルコードの情報まで提供してくださったので、すぐに試すことができました。
終了前に回線切断の処理を入れたかったのですが、これで実現できそうです。

ありがとうございました。
完璧な回答でした。

閉鎖

“C言語何でも質問掲示板” へ戻る