编写ActiveX控件(MFC)

来源:互联网 发布:娱乐赌博软件下载 编辑:程序博客网 时间:2024/04/28 17:23


      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、发布控件

原创粉丝点击