软件框架的利器、TangramMini组件应用教程六:MDI应用一
2007-12-30 21:37:49 来源:WEB开发网为了编码方便,我们直接从安装包的案例源码中找到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);
其中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。
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);
}
得到TangramMiniCtrl控件的引用之后,我们就像之前在对话框程序中使用TangramMiniCtrl控件了,首先调用LoadFile()方法加载框架文件,然后调用SetMDIClient(…)方法安装框架以及客户区。使用SetMDIClient的方法表示将TangramMiniCtrl控件填充当前视图的位置,并将当前MDI客户区平移到名为Page1_S0001_S0000(你也可以用别的有效空白视图名称)的Tangram空白视图区域中。
更多精彩
赞助商链接