MFC ダイアログアプリケーションでの正常な終了の方法を教えてください。exit(0)ではないと思うのです。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:tonolove No.1

回答回数158ベストアンサー獲得回数0

ポイント10pt

ダイアログですので、

キャンセルボタンが押されるか、

ESCが押下された場合に自動的に

画面を閉じるイベントハンドラが

起動します。

それがフレームワークを使ううまみでスネ。

(MFC)(ダイアログクラスCDlg::OnCancelだったかな)

生のc言語みたいにexit(0)とはいたしません。

id:EddyYamanaka No.2

回答回数385ベストアンサー獲得回数1

ポイント10pt

APIのEndDialog(hWnd, nRetCode)か、CDialog::EndDialog(int nResult)ですネ。

ダイアログアプリケーション本体は CDialog なので、単純に「EndDialog(0);」なんて書けばOKです。

id:Kumappus No.3

回答回数3784ベストアンサー獲得回数185

ポイント40pt

http://www.microsoft.com/japan/msdn/library/default.asp?url=/jap...

ご指定のページが見つかりません

ここの

プログラムの中でMFCアプリケーションを終了させる方法は?

が参考になるのではないでしょうか。

WindowにWM_CLOSEメッセージを送って終了処理をさせます。

id:nekomilk

できました!

2005/02/17 11:40:17
  • id:EddyYamanaka
    ちょっと違うのでは?

    exit(0)が違うと思われたのだから、WM_CLOSEメッセージを送るのではなく、やはり CDialog::EndDialog() の方が正当だと思います。
    「MFCダイアログアプリケーション」ですからネ。
    実際に継承元の CDialog には OnOK() と OnCancel() イベントがあり、その中は CDialog::EndDialog()です。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません