Visual C++ 関連情報

MFC 関連情報

DOC/View

  • SDI で Doc/View を使わない方法。
    • AppWizard で「ドキュメント/ビュー アーキテクチャのサポート」のチェックをはずす。
      ---------------------------------------------------------
      MFC AppWizard - ステップ 1
      ---------------------------------------------------------
       作成するアプリケーションの種類」
        (*) SDI
        ( ) MDI
        ( ) ダイアログベース
        [ ] ドキュメント/ビュー アーキテクチャのサポート
      ---------------------------------------------------------
  • Doc/View はアーキテクチャは使わないが View のみを使う場合。
    • CListView を用いる方法
      上記のウィザードを実行した後、以下のような修正を行う。
      (CListView は new で構築してあげないと、ウィンドウ閉じるときに delete this で落ちる。)

      #code c++ class CChildView : public CListView {

         CChildView();
         DECLARE_DYNCREATE(CChildView) // 追加
      };

IMPLEMENT_DYNCREATE(CChildView, CListView) // 追加

class CMainFrame : public CFrameWnd {

   CChildView* m_pWndView;

};

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) {

   if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
       return -1;

/*

   if (!m_wndView.Create(NULL, NULL, AFX_WS_DEFAULT_VIEW,
       CRect(0, 0, 0, 0), this, AFX_IDW_PANE_FIRST, NULL))
   {
       TRACE0("Failed to create view window\n");
       return -1;
   }

/

   m_pWndView = (CChildView*)RUNTIME_CLASS(CChildView)->CreateObject();
   if (!m_pWndView->Create(NULL, NULL, AFX_WS_DEFAULT_VIEW,
       CRect(0, 0, 0, 0), this, AFX_IDW_PANE_FIRST, NULL))
   {
       TRACE0("Failed to create view window\n");
       return -1;
   }

}

#end


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-01-08 (日) 19:17:10 (4486d)