(MFC)Vs2010制作Visual Studio风格的停靠侧栏窗口(CDockablePane里嵌套FormView表单视图)
[cpp] view plaincopyprint?关键字:CDockablePane, Visual Studio风格的Gui界面,,CDoackable里嵌套FormView表单视图步骤 www.zzzyk.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{<SPAN style="COLOR: rgb(255,0,0)">DECLARE_DYNCREATE</SPAN>(CMfcFormView)//<SPAN style="BACKGROUND-COLOR: rgb(255,0,0)">具有动态创建对象的能力</SPAN>public:CMfcFormView(): CFormView(CMfcFormView::IDD){}// 动态创建所使用的受保护的构造函数~CMfcFormView(){}public:public:enum { IDD = IDD_FORMVIEW };#ifdef _DEBUGvirtual void AssertValid() const;#ifndef _WIN32_WCEvirtual void Dump(CDumpContext& dc) const;#endif#endifprotected: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 _DEBUGvirtual void AssertValid() const;#ifndef _WIN32_WCEvirtual void Dump(CDumpContext& dc) const;#endif#endifprotected:virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持DECLARE_MESSAGE_MAP()[cpp] view plaincopyprint?};};SolutionWnd.cpp[cpp]#include "stdafx.h"#include "SolutionWnd.h"// CMfcFormView<SPAN style="COLOR: #ff0000">IMPLEMENT_DYNCREATE</SPAN>(CMfcFormView, CFormView)void CMfcFormView::DoDataExchange(CDataExchange* pDX){CFormView::DoDataExchange(pDX);}BEGIN_MESSAGE_MAP(CMfcFormView, CFormView)END_MESSAGE_MAP()// CMfcFormView 诊断#ifdef _DEBUGvoid CMfcFormView::AssertValid() const{CFormView::AssertValid();}#ifndef _WIN32_WCEvoid CMfcFormView::Dump(CDumpContext& dc) const{CFormView::Dump(dc);}#endif#endif //_DEBUG// CMfcFormView 消息处理程序#include "stdafx.h"#include "SolutionWnd.h"// CMfcFormViewIMPLEMENT_DYNCREATE(CMfcFormView, CFormView)void CMfcFormView::DoDataExchange(CDataExchange* pDX){CFormView::DoDataExchange(pDX);}BEGIN_MESSAGE_MAP(CMfcFormView, CFormView)END_MESSAGE_MAP()// CMfcFormView 诊断#ifdef _DEBUGvoid CMfcFormView::AssertValid() const{CFormView::AssertValid();}#ifndef _WIN32_WCEvoid CMfcFormView::Dump(CDumpContext& dc) const{CFormView::Dump(dc);}#endif#endif //_DEBUG// CMfcFormView 消息处理程序至此我们已经把FormView派生出的CMfcFormView类建好了。我们需要建立一个CDockablePane的派生类,予以容纳FormView,建立派生出的CDockablePane类为CSolutionWnd利用类向导,添加名为CSolutionWnd,基类为CDockablePane...生成文件SolutionWnd.h和SolutionWnd.cppSolutionWnd.h里又添加了如下代码[cpp]class CSolutionWnd : public CDockablePane{DECLARE_DYNAMIC(CSolutionWnd)//构造函数public:CSolutionWnd();//析构函数~CSolutionWnd();//特性public: <补充:软件开发 , C++ ,
上一个:虎溪校园导游系统
下一个:迭代法解方程:牛顿迭代法、Jacobi迭代法
- 更多C/C++疑问解答:
- 关于c++的cout输出的问题。
- 在学校里学过C和C++,不过学的很一般,现在自学C#,会不会很难?
- 全国计算机二级C语言笔试题
- 已知某树有2个2度结点,3个3度结点,4个4度结点,问有几个叶子结点?
- c++数据结构内部排序问题,整数排序
- 2012九月计算机二级C语言全国题库,,急求急求
- 如果assert只有一个字符串作为参数,是什么意思呢?
- C语言中,哪些运算符具有左结合性,哪些具有右结合性,帮忙总结下,谢谢了!
- 为什么用结构体编写的程序输入是,0输不出来啊~~~
- 将IEEE—754的十六进制转化为十进制浮点类型,用C或C++都行,多谢各位大侠啊,非常感谢!
- 为什么这个程序求不出公式?
- 这个链表倒置的算法请大家分析下
- c语言函数库调用
- C语言unsigned int纠错
- C语言快排求解啊