软件框架的利器、TangramMini组件应用教程五:SDI中的应用
2007-08-29 21:35:06 来源:WEB开发网为了编码方便,我们直接从安装包的案例源码中找到TangramMini_i.c与TangramMini_i.h两个文件复制到之前新建的SDI工程源码下。搞定之后,我们前期工作准备完毕,开始编码:
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",
(LONG)theApp.m_pClientView->m_hWnd,
0,&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。
更多精彩
赞助商链接