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

软件框架的利器、TangramMini组件应用教程五:SDI中的应用

 2007-08-29 21:35:06 来源:WEB开发网   
核心提示: 为了编码方便,我们直接从安装包的案例源码中找到TangramMini_i.c与TangramMini_i.h两个文件复制到之前新建的SDI工程源码下,软件框架的利器、TangramMini组件应用教程五:SDI中的应用(2),搞定之后,我们前期工作准备完毕,成为主框架窗口的一个子窗口,Ta

为了编码方便,我们直接从安装包的案例源码中找到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。

Tags:软件 框架 利器

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