单文档mfc添加树形控件

来源:互联网 发布:关注seo与代码的联系 编辑:程序博客网 时间:2024/05/29 08:32

本文转自:http://blog.csdn.net/lh1162810317/article/details/11820889

一般的控件在基于对话框的mfc程序中使用非常方便,但在单文档的mfc中却有点麻烦。因为单文档的框架不能直接加各种各样控件,这些控件必须要加在对话框中,然后再把对话框镶嵌在单文档的mfc框架中。刚开始我没注意到这点,所以一直在找各种各样控件,找了很久都没找到。后来才意识到这点——控件只能直接加在对话框中,而我的是单文档的框架,所以找不到控件。后来在网上找了很多资料,终于把树形控件镶嵌进框架里面。但还没能对其进行消息映射。先做个小结吧!

一,先在Resource View 下的Dialog中鼠标右键-》添加资源-》添加一个CDialogBar。然后CDialogBar 中添加树形控件。
二,给CDialogBar添加一个类CDlgBar,用类向导建,父类就直接写CDialogBar。
三,直接定义两个函数virtual BOOL Create(CWnd* pParentWnd,UINT nIDTemplate,UINT nStyle,UINT nID);
BOOL InitDialogBar();
四,函数的实现:
[cpp] view plaincopy
  1. BOOL CDlgBar::InitDialogBar()  
  2. {  
  3.     UpdateData(FALSE);//这个一定要啊,这样就会有和CDialog一样的数据交换效果了  
  4.     return TRUE;  
  5.   
  6.   
  7. }  
  8. BOOL CDlgBar::Create(CWnd* pParentWnd,UINT nIDTemplate,UINT nStyle,UINT nID)  
  9.   
  10.   
  11. {  
  12.   
  13.   
  14.     // TODO: Add your specialized code here and/or call the base class  
  15.   
  16.   
  17.     BOOL bRes= CDialogBar::Create(pParentWnd,nIDTemplate,nStyle,nID );  
  18.   
  19.   
  20.     InitDialogBar();//在类中添加一个成员函数就可以了  
  21.     return bRes;  
  22.   
  23.   
  24. }  


五在MainFrame中创建对话条
1,先在MainFrame.h中声明一个CDlgBar 对象CDlgBar m_DlgBar;(注意将头文件包含进来#include "DlgBar.h")
2.在MainFrame.cpp中实现如下:
[cpp] view plaincopy
  1. int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)  
  2. {  
  3.     if (CFrameWnd::OnCreate(lpCreateStruct) == -1)  
  4.         return -1;  
  5.   
  6.     // TODO:  Add your specialized creation code here  
  7.     if (!m_DlgBar.Create(this, IDD_DIALOGBAR, WS_CHILD | WS_VISIBLE |CBRS_LEFT | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY |   
  8.     CBRS_SIZE_DYNAMIC, IDD_DIALOGBAR))  
  9.     {  
  10.         TRACE0("Failed to create dialogbar/n");  
  11.   
  12.         return -1;      // fail to create  
  13.     }  
  14.     m_DlgBar.EnableDocking(CBRS_ALIGN_ANY);  
  15.     EnableDocking(CBRS_ALIGN_ANY);  
  16.     DockControlBar(&m_DlgBar);  
  17.   
  18.     return 0;  
  19. }  


其中对话条的ID: IDD_DIALOGBAR是默认的没改。
这样运行下应该就在单文档的框架左边出现了一个框,只是里面的树什么也没有。后面再介绍树形控件的消息处理。
原创粉丝点击