MFC中图形插件的插入问题

      看了老骆驼的文章《C++和C#编写并且相互调用COM组件》,也激发我寻找MFC处理图形插件的问题。在老骆驼的文章里,看到在VC6.0创建的插件在VC6.0的MFC只调用函数情况,我相信他有更好的插件办法,只是抛玉引砖罢了!
1.  找到Project->Add To Project->Components and Controls->Registered ActiveX Controls中要添加的插件.
2.  在MFC中的View类中添加OnCreate函数.并在该头文件中定义一个插件类的成员对象,比如

     CCHBMFCCom m_Com。
3.  在OnCreate函数类通过成员对象创建窗口,
    比如m_Com.Create( NULL, WS_CHILD | WS_VISIBLE, CRect( 0, 0, 0, 0 ), this, 1983 ).
4. 自此插件的窗口已经建立,如果这时加载了图形,那么就可以通过调用WM_SIZE消息刷性窗口显示图形了。比如在
    OnSize函数类实现,m_Com.MoveWindow( 0, 0, cx, cy ).
5. 由于用AxtiveX control Test Container调试插件麻烦,每次都必须手动输入各种变量,这时为了调试方便可在  

    Project->Insert Project into workspace插入源代码。
6. 如果在插件添加了新方法,这时不会在MFC自动更新,比如在插件里面添加了一个新方法。
    void chbAdd( [in] int a, [in] int b, [out] int* c );
    那么在MFC中插件类里应该先声明该函数void chbAdd( long a, long b, long *c );
    然后函数实现:
   void CCHBMFCCom::chbAdd(long a, long b, long* c)
   {
           static BYTE parms[] =
           VTS_I4 VTS_I4 VTS_PI4;
          InvokeHelper(0x10, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
          a, b, c);
   }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值