wps使用xml文件显示ui
功能区xml显示图标
xml文件的属性和方法
属性或方法 | 返回值 | 描述 |
---|---|---|
xmlns | String | 必须使用 “http://schemas.microsoft.com/office/2006/01/customui” |
onLoad | callback | 再功能区加载的时候,将功能区参数传递给回调函数 |
loadImage | callback | 实现loadImage函数可以使用用户自定义的图片 |
xml示例
<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="OnLoad"><ribbon><tabs><tab idMso="TabAddIns"><group id="MyGroup"label="My Group"></group></tab></tabs></ribbon>
</customUI>
元素 | 描述 |
---|---|
customUi | 表示自定义的功能区 |
ribbon | 表示功能区 |
tabs | 表示功能区选项卡组 |
tab | 表示单个功能区选项卡 |
group | 表述功能区选项卡上的控件组 |
特性 | 父元素 | 描述 |
---|---|---|
onLoad | customUi | 标识应用程序加载功能区时调用的方法 |
idMso | tab | 表示显示在功能区中的内置选项卡 |
id | group | 表示组的id |
label | group | 指定在组上显示的名字(wps现在不显示下方的id名字) |
功能区类引用
方法 | 描述 |
---|---|
GetCustomUi | 返回功能区xml文件的内容。wps调用这个方法用与获取用户界面的XML字符串。 |
OnLoad | 将IRibbonControl参数分配给Ribbon字段,此字段可以用来更新自定义功能区 |
使用xml布局的流程
编写xml文件
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="Ribbon_Load"><ribbon startFromScratch="false"><tabs><tab id="DocumentAssistant" label="公文助手"><group id="SampleGroup1" label="def1"><button id="DBCToSBCBtn" label="半角转全角" onAction="DBCToSBC" imageMso="HappyFace"/></group></tab></tabs></ribbon>
</customUI>
对xml文件的解释
tab一行中,label代表选项卡在整个选项卡组中的名字,使用id标签对选项卡进行标识。如果使用idMso则代表是默认选项卡,像文章开始的xml那样表示的是加载项选项卡。每个group代表的是一组控件,一组控件的分割在wps现实中使用|
标识。在每一个group中可以添加按钮,按钮的id由用户设定,label代表按钮在选项卡中显示的文字,onAction代表触发的方法,imageMso代表使用系统自带的图标,上文中的xml文件中的HappyFace就是系统图标。
第一步:实现GetCustomUi接口
GetCustomUi接口定义
virtual /* [helpcontext][id] */ HRESULT GetCustomUI(/* [in] */ BSTR RibbonID,/* [retval][out] */ BSTR *RibbonXml);
实现GetCustomUI接口
HRESULT CWpsComPlugins::GetCustomUI(/* [in] */ BSTR RibbonID,/* [retval][out] */ BSTR *RibbonXml)
{if (!RibbonXml)return E_INVALIDARG;QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8"));QString xmlPath = QString::fromLocal8Bit("/root/下载/qt-project/InProcessComPlugin/ribbon.xml");QFile file(xmlPath);file.open(QIODevice::ReadOnly|QIODevice::Text);QString str("");while (!file.atEnd()) {str += file.readLine();}file.close();const WCHAR* const cszXml = str.utf16();*RibbonXml = ::SysAllocString(cszXml);return S_OK;
}
编译运行项目,将生成的动态链接库放入到wps中的wpsplugins文件夹中,会显示如下图所示
第二部:使用用户自定义的图片
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" loadImage="GetImage">
<!-- Later in the markup --><button id="myButton" image="mypic.jpg" />
在customUI一行中填写loadImage标签,并实现GetImage函数,之后再button中添加image标签,写入图片地址即可使用自定义图片。
注意:自定义图片大小要1616,large图标为3232
GetImage回调方法必须返回stdole.IPictureDisp类型
RECT& rc = *(RECT*)di.prcBounds;
CComPtr<IPictureDisp> m_picdisp = NULL;//IPictureDisp对象指针
_bstr_t m_bstrImgUrl = "C:\\桌面\\1.bmp";//bmp图片格式的路径
HRESULT hr = NOERROR;
PICTDESC pictDesc;
pictDesc.picType = PICTYPE_BITMAP;
pictDesc.bmp.hbitmap = (HBITMAP)::LoadImage(NULL, m_bstrImgUrl, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION);//加载bmp格式的图片
pictDesc.bmp.hpal = nullptr;
pictDesc.cbSizeofstruct = sizeof(PICTDESC);
return m_picdisp
wps使用xml文件显示ui相关推荐
- 如何把 XML 文件显示为 HTML 表格
如何把 XML 文件显示为 HTML 表格 <html> <head> <script type="text/javascript"> var ...
- IDEA Maven项目中,pom.xml文件显示为橘红色普通xml文件,将pom文件变为蓝色图标
一.创建Maven项目后,pom.xml显示为橘红的普通文件,可能是IDEA没有识别 二.如果可以依赖可以正常导入,文件还是显示为橘色,可能是开启了节能模式导致的 这时候取消勾选Power Save ...
- xml配置文件显示为文本文件问题
idea 新建的xml文件显示为文本问题 原因: 由于新建不带后缀名的文件的时候 idea会相对智能的让你选择 文件规则 解决: settings->File types 中找到对应的文件类型显 ...
- android xml 加载错误提示,加载uixml文件失败 打开wps时显示“加载XML文件失败1
打开wps时显示"加载XML文件失败." 打开wps时显示"加载XML文件失败1 关闭所有打开的Word文档: 开始 → 运行 → 粘贴上面复制的命令 → 确定. 在打开 ...
- ASP.NET中自动生成XML文件并通过XSLT显示在网页中的方法
XML是一种很方便的描述数据的方法,其格式也比较接近HTML,因此就有了想把XML直接通过网页的形式显示在浏览器中的想法.但是直接打开XML文件,浏览器是无法解析的,只是把文档的结构原封不动地呈现出来 ...
- IDEA无法识别pom.xml文件,内容全部显示为灰色,或者无颜色
具体表现为:新建maven工程后,pom.xml文件内容显示为灰色,具体内容无法识别.如下: 原因分析: idea无法识别xml文件. 解决步骤: 1.选择File->Settings: 2.选 ...
- html表格中绑定显示xml文档内容的简单实例,JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)...
本文实例讲述了JS读取XML文件数据并以table形式显示数据的方法.分享给大家供大家参考,具体如下: 先看xml文件: 张秋丽 女 18 李文才 男 31 李斯文 男 22 马英 女 25 孙红雷 ...
- html用dom显示xml,html DOM文件引用一个XML文件将不会在浏览器中打印
我完全不熟悉这一点,我正在上课,现在变成了一个令人头疼的问题.我有这个HTML DOM文件,它引用了一个XML文件,我需要在浏览器中显示在屏幕上.它应该只打印标题,标题,第一个,最后一个,位置,描述的 ...
- html xsl xml文件,用XSL显示XML文件看起来像HTML
我是标记语言的新手,需要显示HTML表格,将其转换为XML,然后使用与HTML相同的XSL显示它.下面是一些HTML表格:用XSL显示XML文件看起来像HTML cellpadding="5 ...
最新文章
- TCP/IP、SOCKET、HTTP之间的联系与区别
- 流程审批OA办公系统解决财务报销等问题
- 化境文件上传修改版.可检测任何木马
- ssh key加密解密原理
- 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 18丨即时食物配送 I【难度简单】​
- 因为加班,错过77万年终大奖,你还加班?
- PCL中使用FLANN库(2)
- python面向对象的含义_Python面向对象(一)
- 2016年美国太阳能光伏发电成本持续下降
- java8—Stream
- Ruby 从入门到掌握视频教程(31 个视频)
- Mac连接win10打印机
- axure 调整中继器列宽_Axure教程:用中继器做图片轮播
- 计算机网络连接图标在哪,电脑网络连接图标不见了
- 标准盒模型和IE盒模型
- 类似Wordpress的建站系统
- WEP-wifite自动化渗透WEP加密
- jump game ii
- python分析红楼梦中人物形象_红楼梦中贾宝玉的人物形象分析
- 【英语】--动起来的英语进度