频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

用VC6.0编写Word插件(Office2K、XP、03)

来源: 作者: 出处:巧巧读书 2007-10-09 进入讨论组
上一页 1 2 3 4 5 6 下一页 
用VC6.0编写Word插件(Office2K、XP、03)(图九)

  图9

  但是点击时没有响应,最后就让我们来解决这个问题。

  1. 在COutlookAddin继承类中加入IDispEventSimpleImpl继承,代码如下:

class ATL_NO_VTABLE COutlookAddin :
    public CComObjectRootEx<CComSingleThreadModel>,
    ……
    public IDispEventSimpleImpl<1,COutlookAddin,&__uuidof(Office::_CommandBarButtonEvents)>
2. 声明_ATL_SINK_INFO结构回调参数信息。在OutlookAddin.h文件中加入下面语句:// 按钮事件响应信息声明
extern _ATL_FUNC_INFO OnClickButtonInfo;
在OutlookAddin.cpp文件中加入定义语句,如下:// 按钮事件响应信息定义
_ATL_FUNC_INFO OnClickButtonInfo ={CC_STDCALL,VT_EMPTY,2,{VT_DISPATCH,VT_BYREF
    | VT_BOOL}};
3. 加入Sink映射,如下:EGIN_SINK_MAP(COutlookAddin)
   SINK_ENTRY_INFO(1, __uuidof(Office::_CommandBarButtonEvents),/*dispid*/
   0x01, OnClickButton1, &OnClickButtonInfo)
   SINK_ENTRY_INFO(2, __uuidof(Office::_CommandBarButtonEvents),/*dispid*/
   0x01, OnClickButton2, &OnClickButtonInfo)
   SINK_ENTRY_INFO(3, __uuidof(Office::_CommandBarButtonEvents),/*dispid*/
   0x01, OnClickMenu, &OnClickButtonInfo)
   END_SINK_MAP()

  4. 加入事件函数。在OutlookAddin.h中加入声明:

void __stdcall OnClickButton1(IDispatch * /*Office::_CommandBarButton**/
Ctrl,VARIANT_BOOL * CancelDefault);
在OutlookAddin.cpp中加入实现:

// 工具条按钮1点击事件响应函数
void __stdcall CWordAddin::OnClickButton1(IDispatch *
  /*Office::_CommandBarButton**/ Ctrl,VARIANT_BOOL * CancelDefault)
{
    MessageBox(NULL, "hello", "world", MB_OK);
}

浏览URL http://www.qqread.com/word/d349798.html 更多文章 更多内容请看Office技巧专区软件插件专题,或进入讨论组讨论。
上一页 1 2 3 4 5 6 下一页 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章