编写ActiveX控件(MFC)


      1、使用向导生成ActiveX Project
      2、添加自己的方法和消息影射到 XXXXCtrl.h文件中,结构是
              DECLARE_DISPATCH_MAP()
                       afx_msg void AboutBox();
                       afx_msg void MyMethod();
                     ... ...
               public:
                       enum { DISPID_MyMethod   =  1 ,DISPID_MyMess   =  2 };
               (AboutBox的映射不需要加)

      3、在对应的.cpp文件(例如 XXXXCtrl.cpp)中实现自己的方法
            void XXXXCtrl::AboutBox()
          {   CDialog dlgAbout(IDD_ABOUTBOX_MYSAMPLEACTIVEX);
          dlgAbout.DoModal();}

          void XXXXCtrl::MyMethod()
          {   ::MessageBox(NULL,_T("My Message"),_T("MyEdit"),NULL);}
      4、 在 XXXXCtrl.cpp文件中添加方法转发
      BEGIN_DISPATCH_MAP(CMySampleActiveXCtrl, COleControl)
          DISP_FUNCTION_ID(CMySampleActiveXCtrl, "AboutBox", DISPID_ABOUTBOX,
      AboutBox, VT_EMPTY, VTS_NONE)
          DISP_FUNCTION_ID(CMySampleActiveXCtrl, "MyMethod", DISPID_MyMethod,
      MyMethod, VT_EMPTY, VTS_NONE)
      END_DISPATCH_MAP()

      5、在idl文件中添加声明
      enum    {   DISPID_MyMethod   =  1 ,DISPID_MyMess   =  2  };
              ...  ...
              dispinterface _DMySampleActiveX
          {
              properties:
              methods:
                  [id(DISPID_ABOUTBOX)] void AboutBox();
                  [id(DISPID_MyMethod)] void MyMethod();
              ...  ...
          };
              ...  ...
      (注意,在这个文件头上需要重新添加一次 消息影射的ID定义,原因不明....)
      6、完成以上工作后,进行编译,如果出错,需要一步步调试,编译成功后方可继续
      7、使用 ActiveX Control Test Container加载控件进行测试
      8、发布控件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值