济宁天气预报
济宁市人力资源和社会保障局
济宁人事考试单位代码
济宁市安全教育平台
济宁违章查询
济宁住房公积金查询
济宁科技网 济宁培训班 济宁银行网上银行 济宁教育网 历史故事 家庭教育 济宁市地图 济宁房产 济宁教育网 济宁人事考试信息网 济宁新闻网
币圈最新消息 济宁信息港
浏览器之家 济宁汽车 睡前小故事
下载吧 股票书籍 花花草草
百应百科 照片恢复 学习通
红警之家 睡前小故事 马伊琍
手机照片恢复 手机数据恢复

引用.NET Framework Class Library 在线文档2——Word2007高级应

时间:2013-12-13 12:46来源:未知 www.yunhepan.com

插入类库超链接

MTPS是用来返回内容的,所以我们无法从返回的数据中得知节点所对应的超链接。那么,我们如何获取节点所对应的超链接呢?如果无法获得,那么我们之前所做的就白费了。Google一下"MSDN MPTS"关键字,发现Tim Ewald曾经在某期MSDN杂志上介绍过MSDN的超链接的设计思路,并从中得知如何推断出节点所对应的超链接。

推断节点所对应的超链接需要我们提供该节点的short ID,然而,除了我们手动赋之予short ID的根节点外,其下任一节点的Target属性所包含的标识符都是asset ID,这就意味着我们需要做一次转换了:

Code 9

getContentResponse.contentId公共字段并非指代内容节点的ID,而是指代short ID,无论该节点是导航节点还是内容节点,这是历史遗留问题,如果你读了第二课堂栏推荐的文章,你会发现这点微小的混乱。

接着,我为TocNode提供一个TargetUrl属性,用于返回当前节点所指向的内容的超链接:

Code 10

值得注意的是,我在这里使用了m_TargetUrl对超链接进行缓存,以保证该方法对于每个节点仅产生一次网络访问。

接下来就是本回的主角了,我希望右击TreeView上的节点时弹出一个菜单,里面包含一个Insert菜单项,当我点击这个菜单项时,在当前文档的光标处插入这个节点对应的连接。下面是Insert菜单项的Click事件委托:

Code 11

最后,要使Insert菜单项生效,我们必须把菜单挂接到节点上,这可以通过处理TreeView的NodeMouseClick事件做到:

Code 12

故技重施

虽然插入类库连接的功能已经可用,然而TocView也遇到了"我的博客"侧边栏曾经遇到的问题:

随word启动,而不是由用户根据需要启动;
当打开多个Word窗口时,仅显示在第一个打开的窗口里。
对于这两个问题,我将会使用《探索 Word 2007 开发(二):扩展 Ribbon》和《探索 Word 2007 开发(三):管理侧栏》这两篇文章里提到的方法来处理。首先,创建一个Ribbon:

图 1

然后,就是移植MyBlogsPaneManager过来管理TocView了。我当然可以直接把MyBlogsPaneManager里面关于"我的博客"侧边栏的东西换成与TocView对应的,然而,我希望让MyBlogsPaneManager更通用,以便将来在遇到关于侧边栏管理问题可以直接使用。MyBlogsPaneManager的核心部分要数GetMyBlogsPane()方法了,要让它变得通用,必须把里面和"我的博客"侧边栏相关的东西泛化,下面是该方法的改版代码:

Code 13

需要说明的是,m_CustomTaskPanePool来自Globals.ThisAddIn.CustomTaskPanes,而后者里只存放当前插件添加进去的侧边栏,再加上同一个Word窗口里相同类型的侧边栏只会出现一次,于是,在上述代码里,我通过侧边栏的父窗口和所含控件的类型来进行判等是合理的。另外,由于添加侧边栏需要提供标题,而标题和控件的类型又是一一对应的,于是,我使用了一个Dictionary<Type, string>来存放这些对应信息。要注册该信息,可以使用下面这个方法:

相关阅读
  • 下载微软Office2003SP2
  • 在Word 2007文档中设置文本框边框
  • Word 2007中更改多级编号列表级别
  • 办公软件应用版FAQv2.0
  • 在Word 2007文档中设置文本框边框
  • Office 2007中关闭页面空白的方法
  • Word中输入11至20带圈字符的快捷方法
  • 2007MicrosoftOfficeRTM图片赏

  • 上一篇:引用Amazon图书信息2 ——Word2007高级应用(十八)
    下一篇:用Word2007制作精美的文档页码

    济宁运河畔网版权与免责声明:

    ①凡本网来源于注明来“源于:运河畔或www.yunhepan.com”版权均属运河畔网所有,其他媒体可以转载,且需注明“来源运河畔网”
    ② 凡本网注明“来源:XXX(非济宁运河畔,济宁信息港)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。
    ③ 如因作品内容、版权和其它问题需要同本网联系的,请在30日内进行。

    • 全网热点
    • 健康
    • 教育
    • 新闻
    • 美食