c++ でデフォルトのクローズ操作を変更するにはどうすればよいですか?
(Windows フォーム アプリで) 赤い X を押すと、フレームを閉じるのではなく、非表示にするだけです。
それが Windows フォーム アプリケーションである場合、おそらく既に何らかのメッセージ ループ プロシージャがあり (そうでない場合は実装する必要があります)、その中で WM_CLOSEメッセージを処理し、ウィンドウを最小化して、イベントが処理されたことを返します。デフォルトの実装はウィンドウを閉じません。MFC、ATL、Winforms など、どのテクノロジを使用していますか?
編集
Windowsフォームを使用していることを明確にしたので、これは機能するはずです(コンストラクターにクロージングイベントハンドラーを追加する方法と、実際にクロージングをキャンセルしてウィンドウを最小化する方法を示す小さな例):
Form1(void)
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
this->Closing += gcnew CancelEventHandler(this, &Form1::Form1_Closing);
}
void Form1_Closing( Object^ /*sender*/, System::ComponentModel::CancelEventArgs^ e )
{
this->WindowState = FormWindowState::Minimized;
e->Cancel = true;
}
Form::Closing
イベントの詳細については、こちらをご覧ください。