SDI複数のビュー強制終了方法 – プログラミング – Home

SDI複数のビュー強制終了方法
 
通知
すべてクリア

[解決済] SDI複数のビュー強制終了方法


レバークーゼン
 レバークーゼン
(@レバークーゼン)
ゲスト
結合: 22年前
投稿: 4
Topic starter  

マイクロソフトのサポート通りSDIで複数のビューを切り替える
アプリケーションを作成しました。

ftp://ftp.microsoft.com/softlib/mslfiles/VSWAP32.EXE

アプリケーションクラスのInitInstanceにて複数ビューのメモリを
確保(new)しているのですがdeleteの記載は見当たりません。

// Keep array of views as member of WinApp
CView* pActiveView = ((CFrameWnd*) m_pMainWnd)->GetActiveView();
m_pViews[0] = pActiveView;
m_pViews[1] = (CView*) new CForm2;        //複数のビューメモリ確保
m_pViews[2] = (CView*) new CVswapView;      //複数のビューメモリ確保

実際アプリケーションを開始し通常の終了処理をおこなうと
メモリリークは起こらず、自動的にメモリ解放されているように伺えます。

と、ここまでは問題はないのですが複数ビューからアプリケーション全体を
終了しようとするとメモリリークが起こってしまいます。
終了には以下の方法を取っています。
pApp = (CApp*)AfxGetApp();
pApp ->m_pMainWnd->PostMessage( WM_QUIT, NULL, NULL );

何か、良い方法があればどなたかご教授いただけたら幸いです。


引用未解決
トピックタグ
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

pApp ->m_pMainWnd->PostMessage(WM_CLOSE);

ではいかがでしょう。


返信引用
レバークーゼン
 レバークーゼン
(@レバークーゼン)
ゲスト
結合: 22年前
投稿: 4
Topic starter  

ご指摘どおりにしたら直りました。
dairygoodsさんどうもありがとうございました。


返信引用
渋木宏明(ひどり)
 渋木宏明(ひどり)
(@渋木宏明(ひどり))
ゲスト
結合: 23年前
投稿: 196
 

::AfxGetMainWnd()->PostMessage (WM_COMMAND, ID_APP_EXIT);

の方がMFC的かな?


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました