本文代碼運行效果圖
今天難得有空停下手中的活來收一下信箱的MAIL,很高興能收到大家的來信,其中大多都是針對上期中的一篇文章:《CGfxOutBarCtrl之BUG篇》。看到大家熱情洋溢的言語我想再次感謝VC知識庫的朋友們!其中有幾位朋友在來信中提到:如何在多文檔程序中實現類似OutLook的菜單界面呢?我覺得這個問題問的很好,因為現在大多數的界面庫(BCG/CJLibrary)演示程序都是建立Dialog/SDI基礎上的,所以大家按照常規做法很容易“克隆”,那麼在多文檔的情況我們是不是更應該來考慮一下如何來實現呢?那麼現在就讓我們來實現多文檔下的OutLook菜單界面。
1. 建立工程:新建一個多文檔類型的工程,工程名為:MultiOutLook。
2. 准備資源:為了利用原始工程中的[位圖/圖標/光標]等資源,建議在動手改造之前,先把原來單文檔工程下的RES目錄拷貝過來,然後覆蓋多文檔目錄下的RES目錄。不然動拼西湊地找資源太麻煩,哈哈。
3. 修改資源頭文件(resource.h):資源雖然已經具備,可是我們還沒有把它加入到工程的資源樹中去,做法還是原版不動的“拿來主義”。名字可不要敲錯哦。然後要注意修改resource.h文件中的符號定義(#define)。
4. 實現代碼:要實現多文檔下的OutLook菜單界面,你只要改變“子框架“(CChildFrame)的結構就可以。其實說白了就是把單文檔時的主框架結構拉到現在多文檔的子框架結構中來即可。具體做法是:把以前單文檔時的CMainFrame的OnCreateClient中代碼拉到現在的CChildFrame的OnCreateClient事件中來。
再者CChildFrame的成員變量:wndSplitter/wndBar/imaLarge/imaSmall/wndTree也和以前單文檔時的CMainFrame中的成員變量保持一致。同樣也不要忘記在CChildFrame的頭文件中把用到的頭文件也包含進來哦。
5. 編譯運行,一切OK!
至於效率和實用你就慢慢雕刻吧!如果有什麼不妥之處,也不要忘記來信告訴俺哦。
Mail:[email protected]