浅谈C/C++ 开发Excel插件之任务窗格
来源:互联网 发布:free源码解析 编辑:程序博客网 时间:2024/04/30 14:34
Excel的任务窗格非常友好,开发Excel也避免不了,Choice在其插件实现了弹出对话框和任务窗格供用户选择。
如何在C++中创建任务窗格呢。
1.在CConnect类中添加ICustomTaskPaneConsumer接口,方法同前
修改为public IDispatchImpl<ICustomTaskPaneConsumer, &__uuidof(ICustomTaskPaneConsumer), &__uuidof(__Office), /* wMajor = */ 2, /* wMinor = */ 5>
Vs会自动添加要实现的接口STDMETHOD(CTPFactoryAvailable)(ICTPFactory * CTPFactoryInst);
2.添加一个ATL控件(项目》添加》类》ATL》ATL控件)
ATL有三种控件类型 简单型 复合型 DHTML类型
简单型:创建一个空白窗体并实现OnDraw函数,开发者可以任意绘制界面
复合型:创建一个类似对话框的界面,开发者可将需要的控件拖拽上去,类似MFC。
DHTML:支持html控件,将开发者编写的html显示出来,支持JS。
选择复合型。
注:在编写类名的界面记得填写 proid, 创建任务窗格需要填写。
3.实现STDMETHOD(CTPFactoryAvailable)(ICTPFactory * CTPFactoryInst);
STDMETHOD(CTPFactoryAvailable)(ICTPFactory * CTPFactoryInst)
{
VARIANTARG v;
v.vt = VT_ERROR;
v.scode = DISP_E_PARAMNOTFOUND;
CTPFactoryInst->CreateCTP(CComBSTR(_T("EdbParamaTaskBarUi")), CComBSTR(_T("历史行情")), v, &m_pHistoryPane);
m_pHistoryPane->put_DockPosition(Office::MsoCTPDockPosition::msoCTPDockPositionLeft);
m_pHistoryPane->put_Width(320);
m_pIRibbonUIPtr->Invalidate();
VARIANT_BOOL isVisible;
m_pHistoryPane->get_Visible(&isVisible);
if (!isVisible)
{
m_pHistoryPane->put_Visible(TRUE);
}
}
EdbParamaTaskBarUi为proid;
任务窗格就创建好了,以后的任务就是实现功能了。
参考文档:
"http://180.76.151.96/news/index.php/news/news_list_block?
callback=jQuery21109300857859198004_1468832797985&code=GP&start=0&need
Count=40&_=1468832797999" @0x8bc13c8
https://msdn.microsoft.com/zh-cn/aa338202
https://msdn.microsoft.com/zh-cn/aa338202
https://msdn.microsoft.com/zh-cn/aa722523.aspx#a16c7df5-93f3-4920-
baa8-7b7290794c15_AdditionalResources
- 浅谈C/C++ 开发Excel插件之任务窗格
- 浅谈C/C++ 开发Excel插件之操作excel
- 浅谈C/C++ 开发Excel插件之创建项目
- 浅谈C/C++ 开发Excel插件之自定制ribbon菜单
- C#-Excel插件开发总结
- C++IE插件开发
- 浅谈Ios开发之Objektiv-C基础面向对象
- 浅谈之C语言函数
- C语言之数组浅谈
- C语言之指针浅谈
- 浅谈C之精华---指针
- 浅谈vb.net开发中使用excel插件代码
- discuz 插件开发经验之如何运用 C::t 方法
- Linux下C语言开发(多任务编程之任务、进程、线程)
- office 插件开发(C#)
- C#web便捷插件开发
- C语言插件开发模式
- vim c/c++开发插件
- 百度地图工具类
- C#编程启航(一)visual studio 2015 的安装与语言包
- 下载、安装及使用CocoaPods
- CodeForces 711A Bus to Udayland
- 摄像机标定
- 浅谈C/C++ 开发Excel插件之任务窗格
- Paraview 软件学习
- mysql时间字段值0000-00-00 00:00:00
- RF+AppiumLibrary移动端(android)自动化测试案例1:微信添加好友
- FreeMarker基本知识理论
- iOS综合练习 哈欠阅读
- 源码安装lnmp redis jenkins memcached
- 类和对象
- poj2478 Farey Sequence