(MFC)Vs2010制作Visual Studio风格的停靠侧栏窗口(CDockablePane里嵌套FormView表单视图) (一)

2014-11-24 07:57:36 · 作者: · 浏览: 1
[cpp] view plaincopyprint 关键字:CDockablePane, Visual Studio风格的Gui界面,,CDoackable里嵌套FormView表单视图步骤 www.2cto.com
关键字:CDockablePane, Visual Studio风格的Gui界面,,CDoackable里嵌套FormView表单视图步骤[cpp] view plaincopyprint 转载注意作者原创:K_Linux_Man
转载注意作者原创:K_Linux_Man
一直比较喜欢Visual Studio两侧的窗口,可以来回滑动,并且和点击图钉,钉住悬浮的窗口。那就尝试着如何去做出来。
VC++6.0如果要去实现的话,不是不可以,但是得借助第三方的类库,比如说,ToolKit,但是非常的麻烦。。。
Visual Studio里面的新建Demo就可以实现这一功能,何乐而不为呢!!!
那停靠窗口里面用什么填充呢? 树形控件 新建的Demo里有了。更直观一点的话,还是用FormView吧。。。好的。。。开始
要不先来个最终的效果图..... 自己添加的解决方案停靠窗口,里面嵌套FormView视图窗口.而文件视图,类视图,还有属性,Demo里面默认生成的。只有解决方案那个是自己添加的。
\
新建两个文件,SolutionWnd.h SolutionWnd.cpp
在资源窗口里新建一个FormView的Dialog,修改ID为IDD_FORMVIEW,建立一个与FormView相关联的的类, 利用类向导,添加一个名为CMfcFormView,选择基类为CFormView. 生成在SolutionWnd.h和SolutionWnd.cpp文件里。
SoulutionWnd.h
[cpp]
#pragma once
#include "Resource.h"
// CMfcFormView 窗体视图
class CMfcFormView : public CFormView
{
DECLARE_DYNCREATE(CMfcFormView)//具有动态创建对象的能力
public:
CMfcFormView(): CFormView(CMfcFormView::IDD)
{}// 动态创建所使用的受保护的构造函数
~CMfcFormView()
{}
public:
public:
enum { IDD = IDD_FORMVIEW };
#ifdef _DEBUG
virtual void AssertValid() const;
#ifndef _WIN32_WCE
virtual void Dump(CDumpContext& dc) const;
#endif
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
DECLARE_MESSAGE_MAP()
#pragma once
#include "Resource.h"
// CMfcFormView 窗体视图
class CMfcFormView : public CFormView
{
DECLARE_DYNCREATE(CMfcFormView)//具有动态创建对象的能力
public:
CMfcFormView(): CFormView(CMfcFormView::IDD)
{}// 动态创建所使用的受保护的构造函数
~CMfcFormView()
{}
public:
public:
enum { IDD = IDD_FORMVIEW };
#ifdef _DEBUG
virtual void AssertValid() const;
#ifndef _WIN32_WCE
virtual void Dump(CDumpContext& dc) const;
#endif
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
DECLARE_MESSAGE_MAP()[cpp] view plaincopyprint };
};
SolutionWnd.cpp
[cpp]
#include "stdafx.h"
#include "SolutionWnd.h"
// CMfcFormView
IMPLEMENT_DYNCREATE(CMfcFormView, CFormView)
void CMfcFormView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CMfcFormView, CFormView)
END_MESSAGE_MAP()
// CMfcFormView 诊断
#ifdef _DEBUG
void CMfcFormView::AssertValid() const
{
CFormView::AssertValid();
}
#ifndef _WIN32_WCE
void CMfcFormView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
#endif
#endif //_DEBUG
// CMfcFormView 消息处理程序
#include "stdafx.h"
#include "SolutionWnd.h"
// CMfcFormView
IMPLEMENT_DYNCREATE(CMfcFormView, CFormView)
void CMfcFormView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(