单文档mfc添加树形控件

注意:因为某些原因(网上说是vs2010不再支持mfc中的某些控件,具体是什么我也不知道)本方法(嵌入对话条的方法)不能在vs2010上使用,所以如果是使用vs2010的小伙伴们请注意了。

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

一,先在Resource View 下的Dialog中鼠标右键-》添加资源-》添加一个CDialogBar(点开dialog,在dialog的子目录下第一个)。然后CDialogBar 中添加树形控件。
二,给CDialogBar添加一个类CDlgBar,用类向导建,父类就直接写CDialogBar。
三,直接定义两个函数virtual BOOL Create(CWnd* pParentWnd,UINT nIDTemplate,UINT nStyle,UINT nID);
BOOL InitDialogBar();
四,函数的实现:
BOOL CDlgBar::InitDialogBar()
{
	UpdateData(FALSE);//这个一定要啊,这样就会有和CDialog一样的数据交换效果了
	return TRUE;


}
BOOL CDlgBar::Create(CWnd* pParentWnd,UINT nIDTemplate,UINT nStyle,UINT nID)


{


	// TODO: Add your specialized code here and/or call the base class


	BOOL bRes= CDialogBar::Create(pParentWnd,nIDTemplate,nStyle,nID );


	InitDialogBar();//在类中添加一个成员函数就可以了
	return bRes;


}


五在MainFrame中创建对话条
1,先在MainFrame.h中声明一个CDlgBar 对象CDlgBar m_DlgBar;(注意将头文件包含进来#include "DlgBar.h")
2.在MainFrame.cpp中实现如下:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;

	// TODO:  Add your specialized creation code here
	if (!m_DlgBar.Create(this, IDD_DIALOGBAR, WS_CHILD | WS_VISIBLE |CBRS_LEFT | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | 
	CBRS_SIZE_DYNAMIC, IDD_DIALOGBAR))
	{
		TRACE0("Failed to create dialogbar/n");

		return -1;      // fail to create
	}
	m_DlgBar.EnableDocking(CBRS_ALIGN_ANY);
	EnableDocking(CBRS_ALIGN_ANY);
	DockControlBar(&m_DlgBar);

	return 0;
}


其中对话条的ID: IDD_DIALOGBAR是默认的没改。
这样运行下应该就在单文档的框架左边出现了一个框,只是里面的树什么也没有。后面再介绍树形控件的消息处理。
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值