WEB开发网
开发学院软件开发VC 软件框架的利器、TangramMini组件应用教程六:MDI... 阅读

软件框架的利器、TangramMini组件应用教程六:MDI应用一

 2007-12-30 21:37:49 来源:WEB开发网   
核心提示: 为了编码方便,我们直接从安装包的案例源码中找到TangramMini_i.c与TangramMini_i.h两个文件复制到之前新建的MDI工程源码下,软件框架的利器、TangramMini组件应用教程六:MDI应用一(2),搞定之后,我们前期工作准备完毕,然后调用SetMDIClient(

为了编码方便,我们直接从安装包的案例源码中找到TangramMini_i.c与TangramMini_i.h两个文件复制到之前新建的MDI工程源码下。搞定之后,我们前期工作准备完毕,开始编码:

1、 打开stdafx.h文件,加入包含头文件语句:

#include "TangramMini_i.c"
#include "TangramMini_i.h"

为了编译不出现问题,我这里提醒大家,最好是先包含.c文件,再包含.h文件。

2、 由于需要创建ActiveX组件,所以需要COM支持,在创建TangramMiniB2C组件之前必须调用CoInitialize(NULL)语句。

3、 在CMainFrame类中分别加入成员变量m_pMiniB2C与m_pMiniCtrl,类型分别为ITangramMiniB2C*与ITangramMiniCtrl*类型。

4、 修改CMainFrame类的OnCreate()函数,在函数尾部加入下例代码(也是本篇中最主要的代码):

CoInitialize(NULL);
HRESULT hr = CoCreateInstance(CLSID_TangramMiniB2C,
    NULL,
    CLSCTX_INPROC_SERVER,
    IID_ITangramMiniB2C,
    (LPVOID*)&m_pMiniB2C);
if (SUCCEEDED(hr) && (m_pMiniB2C != NULL))
{
    m_pMiniB2C->put_TargetHandle((LONG)m_hWnd);
    m_pMiniB2C->get_TangramMiniCtrl(&m_pMiniCtrl);
    VARIANT_BOOL bSucceed;
    m_pMiniCtrl->LoadFile(L"test.xtml",&bSucceed);
    m_pMiniCtrl->SetMDIClient(L"Page1_S0001_S0000",0,3,&bSucceed);
}
其中CoInitialize(NULL)为初始化,然后调用CoCreateInstance()函数创建TangramMiniB2C组件并保存在m_pMiniB2C成员变量中,创建TangramMiniB2C组件之后,开始由TangramMiniB2C组件辅助创建TangramMiniCtrl控件,在这里我先说明下一下TangramMiniB2C的TargetHandle与TangramMiniCtrl两个属性,其中TargetHandle表示要创建的TangramMiniCtrl控件的父窗口,这里设置为m_hWnd,表示将TangramMiniCtrl控件创建在主框架窗口上,成为主框架窗口的一个子窗口。TangramMiniB2C的TangramMiniCtrl属性表示为创建后的TangramMiniCtrl控件的引用,在这里我们用get_TangramMiniCtrl(&m_pMiniCtrl)得到创建后的TangramMiniCtrl控件的引用并返回给成员变量m_pMiniCtrl。

得到TangramMiniCtrl控件的引用之后,我们就像之前在对话框程序中使用TangramMiniCtrl控件了,首先调用LoadFile()方法加载框架文件,然后调用SetMDIClient(…)方法安装框架以及客户区。使用SetMDIClient的方法表示将TangramMiniCtrl控件填充当前视图的位置,并将当前MDI客户区平移到名为Page1_S0001_S0000(你也可以用别的有效空白视图名称)的Tangram空白视图区域中。

Tags:软件 框架 利器

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接