APP下载

Office编程在手机彩信发布上的应用

2016-05-14池研朱轩晨石菲

资治文摘 2016年8期

池研 朱轩晨 石菲

【摘要】随着流技术的成熟和广泛的应用,其优点我们有了深刻体会。但是,其不足之处也逐渐体现出来。SMIL正是针对目前流技术中的问题而提出来的。特别是在手机彩信内容的编制上,SMIL语言得到了广泛的应用。不过一方面,现有的一些SMIL编辑器并不太好用。而另一方面,我们编制的彩信新闻格式相对比较固定,这非常有利于编写程序自动创建。这篇文章就是基于上面的两点,应用Office接口编程,实现了自动创建SMIL文件的目的。

【关键词】SMIL语言;彩信新闻;Office编程

一、引言

枣庄日报社为适应新兴媒体的发展需要,特别是掌媒所带来巨大冲击的情况下,开始筹办手机报。当时只有编辑人员参加,后来由于省移动公司更换了发送平台,使得原来的工作流程和方法都不再适用,而编辑人员没能掌握新平台的使用和制作,于是计算机工作人员也参加了进来。

我们使用的是山东移动168信息平台的彩信新闻。这个平台需要手工编制SMIL文件,这对于编辑人员来讲是比较困难的,即使是计算机人员天天做同一件事也是非常繁琐的。更何况每天必须在固定时间里发送到平台上,这就要求我们不能用太多的时间来进行调试,同时还要根据每条新闻的字数计算出在手机上显示的时间。当然,手工制作时显示时间的控制只能是粗略的。这就使得有些短信息显示的时间过长,不方便用户的阅读;而有些较长的信息由于显示的时间过短,使得用户没有阅读完就会自动跳到下一条新闻。为解决以上问题,我们使用VC++和Office编程技术编写了一个把Word文件转换成SMIL文件的程序,取名为WordToSmil。

二、制作流程

1.编辑Word文件

由编辑人员使用Word把每条新闻插入到空白表格中,而且必须是按照顺序逐行插入,中间不准有空白行,表格的最后一行必须是空白行,表示彩信新闻到此为止。使用Word编辑稿件的好处是,编辑们对Word的使用比较熟练,而且用表格来组织稿件,其条目非常清晰,也能部分实现彩信新闻在手机上的显示效果。以下是我们实际编辑完成的Word文件,当然这只是全部内容的很少一部分。

编辑完成的Word文件样本

2.运行WordToSmil程序

运行WordToSmil后,屏幕上会显示一个对话框,其中有四个按钮和三个互斥键。首先打开Word文件按钮,屏幕上会显示一个标准的打开文件对话框,选择上面的样本文件。再选择三个互斥键中的一个,慢速意味着每条信息的显示的时间会长些,快速意味着每条信息的显示的时间会短些,程序的缺省值是中速。最后按下生成SMIL文件按钮,程序会自动地把每条信息按照顺序生成一个一个文本文件,同时也生成了SMIL文件。以下是自动创建的SMIL文件样本,这是在选择了中速的情况下生成的。

3.发送到平台

上面生成的文本文件和SMIL文件都自动保存在你打开的Word文件目录下,现在需要把这些文本文件和SMIL文件用WinZip压缩到一个文件中。然后打开浏览器,登录到山东移动168信息平台,选择彩信新闻,填写必要的内容,浏览选择你刚生成的压缩文件,发送出去即可。

三、程序的实现

在Office编程中经常用到的对象有:_Application、Documents、Selection、Range等等。实现这些对象的Visual C++类文件需要从Office提供的几个类型库中导入。他们的位置在Office安装路径下的Office目录,其中Word2000的类型库名为Msword9.olb。

1.建立工程

首先创建一个MFC AppWizard(EXE)工程,名称为WordToSmil,在向导过程中选择生成对话框。然后通过在View菜单中,选ClassWizard,选Automation选项卡,选Add Class,选择From a TypeLibrary,选中Microsoft Office 2000类型库:MSWORD9.OLB。选择需要引入的类_Application、Documents、Range、Section、Sections、Selection。这样我们需要的类就在msword9.h中定义了,只要包含这个头文件就可以使用了。在WordToSmilDlg.cpp实现文件中加入下面几行代码:

#include"msword9.h";

int m_Speed=1;//这是个全局变量

CString fileName;//这也是个全局变量

2.设置对话框并添加消息处理函数

接受所有控制的缺省标识符,设置三个互斥键为一组,并为互斥键组指定一个数据成员m_Speed。在WordToSmil.cpp实现文件中加入下面一行代码:

dlg.m_Speed=1;//这是个数据成员,互斥键缺省值为中速

接下来为每一个控制的BN_CLICKED消息定义一个消息处理函数,接受所有的缺省函数名。

3.为消息处理函数添加代码

(一)消息处理函数OnButton1()

程序的大部分功能就是由这个函数完成的。它首先定义一些Word对象,然后启动Word服务,实际打开Word文件,通过一个循环语句完成到文本文件和SMIL文件的转换。

(二)消息处理函数OnButton2()

这个函数的功能只是获取Word文件的路径和文件名,实际的打开功能是由OnButton1()完成的。

(三)消息处理函数On OnRadio()

这三个函数只是完成简单的给全局变量m_Speed赋值的功能,每个函数都要调用IsDlgButtonChecked()函数以保证互斥键已被选择。

【参考文献】

[1]掌握Microsoft Visual C++编程,熊璋等译,电子工业出版社

[2]专家门诊Visual C++开发答疑300问,肖红卫编著,人民邮电出版社