FrontPageAGHAGH/クラスリファレンスagh::CWindowBase>OnClose

agh::CWindowBase::OnClose()

  1. virtual bool OnClose(){ return true; }

ウインドウが閉じる際に呼び出されるコールバック・イベントハンドラです。

ただし、falseを返す事により、閉じる事をキャンセルする事も可能です。
オーバーライドされない場合はtrueを返し、ウインドウを閉じる処理になっています。

オーバーライドしたメソッドでは、必ずスーパークラスの !OnClose() をユーザ処理の一番初めで呼び出すようにしてください。

例:

  1. class CMyWindow : public CHogeSuperWindow // CHogeSuperWindowはagh::CWindowBaseを継承するクラス
  2. {
  3. private:
  4. bool CloseConfirm()
  5. {
  6. if ( MessageBox( (HWND)GetHwnd(), "ウインドウを本当に閉じてよろしいですか?", "確認", MB_ICONINFORMATION|MB_YESNO ) == IDYES )
  7. return true;
  8. else
  9. return false;
  10. }
  11. public:
  12. bool OnClose()
  13. {
  14. if ( CloseConfirm() == false )
  15. return false;
  16. return CHogeSuperWindow::OnClose();
  17. }
  18. };

返り値

  • bool : ウインドウを閉じるかどうか。
    • true:ウインドウを閉じる
    • false:ウインドウを閉じる処理を中断する