从CScrollView继承一个,然后可以往里面添加Dialog,类似于Panle
来源:互联网 发布:朱生豪情书集 淘宝 编辑:程序博客网 时间:2024/05/16 23:40
从CScrollView继承一个,然后可以往里面添加Dialog,类似于Panle
以下是我实现的添加一个窗体的代码:
#pragma once// CTemplateView 视图/**************************************************************** * 类 名 称 : CTemplateView * * 作 用 : 提供展现控件的模板显示; * * 用 法 : 可以先初始化这个类,然后调用CreateFromStatic函数 * * 将此控件绑定到父窗体上的一个控件上(一般是Static),* * 然后通过AddControl函数将一个CWnd控件添加到这个模 * * 板中并显示。可以不断的调用AddControl函数来显示不 * * 同的展现内容。 * * 作 者 :新业务开发部——沈毅 * * 时 间 :2010/12/1 * * 版 权 : 天源迪科合肥分公司 * ****************************************************************/class CTemplateView : public CScrollView{DECLARE_DYNCREATE(CTemplateView)public:CTemplateView(); // 动态创建所使用的受保护的构造函数virtual ~CTemplateView();protected:virtual void OnDraw(CDC* pDC); // 重写以绘制该视图virtual void OnInitialUpdate(); // 构造后的第一次public://将此View控件绑定到调用窗体的一个控件上(一般而言是Static控件)//nID : Static控件的ID//pParent: 父窗体的指针(也就是调用窗体的指针)BOOL CreateFromStatic(UINT nID, CWnd* pParent);//将一个Dlg添加到View中//pWnd:要添加的窗口控件,可以是任何CWnd窗体,但是必须是创建完毕的(即只需要调用ShowWindow就可以显示的)// 一般这里是显示对话框 BOOL AddControl(CWnd * pWnd); //获取此控件的父控件指针CWnd * GetParentWnd();private://当前显示的窗体指针CWnd * pCurrWnd;//父窗口指针CWnd * pParentWnd;DECLARE_MESSAGE_MAP()};// TemplateView.cpp : 实现文件//#include "stdafx.h"#include "TemplateView.h"// CTemplateViewIMPLEMENT_DYNCREATE(CTemplateView, CScrollView)CTemplateView::CTemplateView(){ pCurrWnd = NULL;}CTemplateView::~CTemplateView(){}BEGIN_MESSAGE_MAP(CTemplateView, CScrollView)END_MESSAGE_MAP()// CTemplateView 绘图void CTemplateView::OnInitialUpdate(){CScrollView::OnInitialUpdate();CSize sizeTotal;// TODO: 计算此视图的合计大小sizeTotal.cx = sizeTotal.cy = 100;SetScrollSizes(MM_TEXT, sizeTotal);}void CTemplateView::OnDraw(CDC* pDC){CDocument* pDoc = GetDocument();// TODO: 在此添加绘制代码}BOOL CTemplateView::CreateFromStatic(UINT nID, CWnd* pParent){ CStatic wndStatic; if (!wndStatic.SubclassDlgItem(nID, pParent)) return FALSE;//记录父窗体指针pParentWnd = pParent; // Get static control rect, convert to parent's client coords. CRect rc; wndStatic.GetWindowRect(&rc); pParent->ScreenToClient(&rc); wndStatic.DestroyWindow(); // create HTML control (CHtmlView)BOOL IsSuc = Create(NULL, // class name NULL, // title (WS_CHILD | WS_VISIBLE ), // style rc, // rectangle pParent, // parent nID, // control ID NULL);if(IsSuc){this->OnInitialUpdate();}// frame/doc context not usedreturn IsSuc;}BOOL CTemplateView::AddControl(CWnd * pWnd){//如果当前有控件在显示,则隐藏之if(pCurrWnd != NULL){pCurrWnd->ShowWindow(SW_HIDE);}//获取父控件(也就是view控件的坐标位置)RECT rect;this->GetClientRect(&rect);//设置控件位置pWnd->SetWindowPos(NULL,rect.left,rect.top,rect.right-rect.left,rect.bottom-rect.top,SWP_DRAWFRAME);//设置父控件pWnd->SetParent(this);pWnd->ShowWindow(SW_SHOW); //将现在显示的控件变成当前控件pCurrWnd = pWnd;return TRUE;}// CTemplateView 消息处理程序
- 从CScrollView继承一个,然后可以往里面添加Dialog,类似于Panle
- Vector:可以往里添加任何类型的字段
- 一个类继承一个抽象类,然后在该类中添加一个接口类型的变量...
- vdceye x64 版本终于可以往hadoop里面写视频数据了
- 从DataTable1的某一行开始循环然后把值添加到另外一个DataTable2中
- quickcocos2dx cocostudio的panle中添加cclayer
- fragment里面new一个Dialog报错
- 用dialog创建一个可修改表
- CScrollView
- CScrollView
- 活动里面添加一个碎片
- 从一个HashMap中把一个value为Set类型的元素取出来,然后add添加一个元素,Map也有新添加的元素了
- 从键盘输入一个整数,然后逆序输出
- 自定义一个方法,然后找出里面最大数!
- 往dialog里面添加view类的注意事项
- 测试技术可以往哪些方向发展
- MFC在已有的Dialog中添加另外一个Dialog
- 对话框中添加视图方法- CScrollView
- 黑马程序员 if elseif else 与if if if连用的区别
- 外部文章引用
- 内存碎片产生原因及处理技术
- mfc 9.0 类结构图
- 使用内存池的原因,内存池的应用
- 从CScrollView继承一个,然后可以往里面添加Dialog,类似于Panle
- mfc中CImageList的使用
- Windows下如何自定义窗体控件
- MFC工具栏添加自定义控件
- TCP/IP详讲
- 黑马程序员——Html、Css、JavaScript、Dom
- note : Call SetWindowsHookEx In DLL
- Html.RenderPartial与Html.RenderAction 用法
- 数字出现次数