2008-08-18 12 views

答えて

10

プログラムによる任意のC#の同等のコードMFCアプリケーション

void ExitMFCApp() 
    { 
     // same as double-clicking on main window close box 
     ASSERT(AfxGetMainWnd() != NULL); 
     AfxGetMainWnd()->SendMessage(WM_CLOSE); 
    } 

http://support.microsoft.com/kb/117320

+0

を終了? –

12
AfxGetMainWnd()->PostMessage(WM_CLOSE); 
4

この方法を使用する理由は、正しいシャットダウンシーケンスを開始することです。 MDI/SDIアプリケーションにとって特に重要な点は、終了する前に保存を促すメッセージや終了をキャンセルすることができるためです。

@Matt野口は、望ましい効果であってもよい。このシーケンスを(回避されますあなたの方法、私は考えますが、あなたはおそらく持っている問題あなたは、通常のティアダウンを短絡している場合

4
PostQuitMessage([exit code]); 
1

ダイアログベースのアプリケーションの場合は、EndDialog()関数を呼び出すことでそれを行うことができます。

SDI/MDIベースのアプリケーションの場合は、DestroyWindowを呼び出すことができますが、その前に自分でクリーンアップを行う必要がありますドキュメントのクローズ、メモリとリソースの割り当て解除、作成された追加ウィンドウの破棄など)。

関連する問題