none
CDocSiteとは? RRS feed

  • 質問

  • こんにちは、お世話になります。

    Win7-64、VS2010、MFC、Doc-View、MDI環境にて開発中です。

    上記環境で、MDIChildFrameの「子ウィンドウ一覧」を取得してみました。

    (本来の目的は、Viewクラスを取得してそのクラスが何かによって処理を区分けする為でしたが)

    すると、想定している子ウィンドウ以外に「CDocSite」という子ウィンドウが取得出来ました。

    このCDocSiteが何者なのかと思い調べてみましたが、MSDNでもGoogleでも検索にヒットしません。

    具体的な手法は、

    CWnd* pChild = MDIChildFrame.GetWindow(GW_CHILD);

    While(pChild){

        pChild = pChild->GetNextWindow();

    }

    これをデバッガで実行し、pChildの値を都度確認してみました。結果は、(一部省略しています)

    CToolBar hWnd=0x00020896} CWnd *      ← 想定している子ウィンドウです
    CMFCToolBar hWnd=0x00020850} CWnd *   ← 想定している子ウィンドウです
    CDockSite hWnd=0x0002084c} CWnd *
    CDockSite hWnd=0x0002084a} CWnd *
    CDockSite hWnd=0x00020848} CWnd *
    CDockSite hWnd=0x00020846} CWnd *
    CxxxView hWnd=0x000308b4} CWnd *      ← 想定している子ウィンドウです
    NULL

    となり、CDocSiteが4つ取得出来ました。

    名称から想像すると、ツールバーをChildFrameにドッキングする為のなにかしらかの仕組みなのかな?

    とも考えましたが、何も情報が無いのがとても気になり、こちらで質問させていただこうと思いました。

    CDocSiteとは一体何者なのでしょうか?どうぞよろしくお願いいたします。

    2012年6月21日 3:03

回答

すべての返信