当前位置: 首页 > news >正文

杭州制作手机网站18上海简约网站建设公司

杭州制作手机网站18,上海简约网站建设公司,wordpress wti like post,西安大型网站制作CFormView简介 MFC提供了一个名为CFormView的特殊视图类,我们称其为表单视图。表单视图是指用控件来输入和输出数据的视图,用户可以方便地在表单视图中使用控件。表单视图具有对话框和滚动视图的特性,它使程序看起来象是一个具有滚动条的对话…

CFormView简介

MFC提供了一个名为CFormView的特殊视图类,我们称其为表单视图。表单视图是指用控件来输入和输出数据的视图,用户可以方便地在表单视图中使用控件。表单视图具有对话框和滚动视图的特性,它使程序看起来象是一个具有滚动条的对话框.在有些情况下,用表单视图比用普通视图更符合用户的需要,例如,在向数据库输入数据时,显然用表单的形式可以更习惯些.

用AppWizard可以方便地创建基于表单视图的应用程序,只要在MFC AppWizard对话框的第六步先选择CView,然后在Base class栏中选择CFormView,AppWizard就会创建一个基于CFormView的应用程序.

读者可以按上述方法建立一个名为Test的应用程序.在Test工程的资源中,读者会发现一个ID为IDD_TEST_FORM的对话框模板,该对话框模板可供用户放置和安排控件.在程序运行时,框架根据该对话框模板创建CFormView对象,并根据模板的信息在表单视图中自动创建控件.与设计对话框类相类似,用户可以用ClassWizard为表单视图类加入与控件对应的成员变量,可以调用UpdateData在控件和成员变量之间交换数据,但对控件的初始化工作是在OnInitialUpdate函数而不是在OnInitDialog函数中进行的.

基于表单视图的应用程序基于对话框的应用程序都是在应用程序中直接使用控件,但二者有很多不同之处。基于对话框的应用程序是用一个对话框来作为程序的主窗口的,因而程序的主窗口的特性与对话框类似,如窗口的大小不能改变,程序没有菜单条、工具条和状态栏等.基于表单视图的应用程序仍然是基于 Doc/View 框架结构的,只是视图被换成了表单视图,也就是说,应用程序的窗口可以改变大小,程序有菜单条、工具条和状态栏,且程序仍然可以 Dov/View 运行机制来处理文档.

在单文档视图应用程序中创建CFormView的两种方法.

方法1. MFC AppWizard创建项目时,选择CFormView

创建单文档应用程序过程中直接将派生于CView类的CXXXView类的基类修改为CFormView,除了经典的文档视类结构之外,MFC将额外生成一个对话框资源,ID为"IDD_XXX_FORM".同时,该对话框通过枚举与"CXXXView"类关联.
在这里插入图片描述

//View类派生于CFormView
class CSDITestView : public CFormView
{
protected: // 仅从序列化创建CSDITestView();DECLARE_DYNCREATE(CSDITestView)public://主对话框与类关联enum{ IDD = IDD_SDITEST_FORM };

方法2. 手动创建一个CFormView类的对话框

已经按照默认流程创建完单文档应用程序了之后再创建基于CFormView类的对话框时最好不要手动修改CXXXView的基类为CFormView,再手动添加一个对话框.

而是要通过以下步骤实现:

  1. 新建一个单文档应用程序.
  2. 资源管理器 - Dialog - 添加一个对话框A
  3. 在对话框A上”选择”类向导”,在”添加类”弹出式对话框中输入类名,”基类”选择为”CFormView.
  4. 在单文档应用程序的CXXXApp的实现文件顶部添加”#include ‘新类的头文件名’”.
  5. 在CXXXApp类的”InitInstance()”函数的”CSingleDocTemplate”类型(注册应用程序的文档模板,文档模板将用作文档,框架窗口和视图之间的连接)连接视类时,将视类替换为我们新添加的CFormView类派生的对话框类(看下文代码)
	// 注册应用程序的文档模板。文档模板// 将用作文档、框架窗口和视图之间的连接CSingleDocTemplate* pDocTemplate;//pDocTemplate = new CSingleDocTemplate(//	IDR_MAINFRAME,//	RUNTIME_CLASS(CSDITestDoc),//	RUNTIME_CLASS(CMainFrame),       // 主 SDI 框架窗口//	RUNTIME_CLASS(CSDITestView));pDocTemplate = new CSingleDocTemplate(IDR_MAINFRAME,RUNTIME_CLASS(CSDITestDoc),RUNTIME_CLASS(CMainFrame),       // 主 SDI 框架窗口RUNTIME_CLASS(CSDIFormDlg));	 // 手动创建的CFormView类
  1. 编译通过运行之后发现对话框可以在单文档一启动就显示了.

接下来就可以像操作对话框应用程序一样直接操作单文档应用程序了.
需要注意的是CFormView派生类没有"OnInitDialog"函数.对话框的初始化(或者说习惯开始函数)可以放在"OnInitialUpdate"中完成.

方法3. 多文档应用程序中实现两个对话框以选项卡的方式显示.

  1. 按照上述方法创建两个派生于CFormView的对话框.
  2. 为了让不同的选项卡显示不同的名字,可以在字符串表(string table)里新建一个字符串资源以备使用.如下图所示.
  3. 将"CXXXApp"类的CMDITestApp::InitInstance()函数中的pDocTemplate修改为该类的成员变量.并且新加一个相同类型的成员变量.
public:CMultiDocTemplate* pDocTemplate;CMultiDocTemplate* pChildDocTemplate;
  1. 新增的文档模板将第二个对话框与框架和文档连接起来.与pDocTemplate连接方法一致.函数的第一个参数可以设置为步骤2新建的那个字符串资源.
  2. 测试此时还是不能同时打开两个对话框.需要注释掉程序自动生成的新建文件函数,重载本类的新建文件函数
	//注释掉默认的文件新建函数//ON_COMMAND(ID_FILE_NEW, &CWinAppEx::OnFileNew)ON_COMMAND(ID_FILE_OPEN, &CWinAppEx::OnFileOpen)//重载使用自己的文件新建函数ON_COMMAND(ID_FILE_NEW, &CMDITestApp::OnFileNew)
  1. 重载的文件新建函数中内容如下.
void CMDITestApp::OnFileNew()
{// TODO: 在此添加命令处理程序代码pDocTemplate->OpenDocumentFile(NULL);pChildDocTemplate->OpenDocumentFile(NULL);}

notes:

1.在单文档应用程序的CXXXApp中新加入的头文件中,需要加入:#include “Resource.h”,才可以使用ID

2.可以选择新建对话框类型

在这里插入图片描述

http://www.yayakq.cn/news/862154/

相关文章:

  • 网站搜索引擎引流常州谷歌推广
  • 网站建设能干什么网页制作成品下载免费
  • 南京手机网站设计深圳建设工程信息网站
  • 2016广州网站设计公司自学网站建设工资
  • 泉州住房城乡建设局网站合肥 做网站的公司
  • 重庆自助建站软件学做网站必须php吗
  • 游戏开发网站建设佛山做网站永网
  • 简洁公司网站源码劳务公司网站建设
  • 电影院做羞羞的网站企业公众号如何开通
  • 长沙建网站设计创建网页
  • 手机网站建设图连接wordpress
  • 网站首页ico怎么做产品推广的目的和意义
  • 海南七星彩网站开发小生互联免费主机
  • 国土局网站建设经验如何做淘宝客个人网站
  • 网站开发需要的技术人才网站不用备案
  • 《教师网站建设与应用管理制度》济南行知网站建设有限公司怎么样
  • 哪个网站是做韩国化妆品正品专业网吧装修设计公司
  • 云主机网站wordpress中标签作用
  • 北京网站建设 网站制作仿站小工具wordpress
  • 国外优秀企业网站百度seo新规则
  • 广州h5网站建设公司专业网站的建设设行吗
  • 企业网站排名软件度智能优化昆明专门做网站
  • 龙华网站建设首页地址ps怎么做网站模板
  • 建的网站打开很慢win10 wordpress安装教程视频教程
  • 网站qq安全认证网上最畅销的10种商品
  • 清远网站制作公司垡头网站建设
  • 企业网站推广方案设计毕业设计网站开发中怎么设置快捷键
  • 单位网站建设的重要性企业网站外包建设
  • wordpress类似网站软件工程师证书有用吗
  • 温州做网站软件佛山专业网站建设团队