柚子Nan--回归原点

Everything can be as easy as you like or as complex as you need.
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Office 2003: 用VSTO在Excel中写"俄罗斯方块"游戏

Posted on 2004-09-24 10:32  柚子Nan  阅读(8003)  评论(35编辑  收藏  举报

原著:
http://www.codeproject.com/dotnet/seoexceltetris.asp     By Woo Seok Seo

译者序
本来对于VSTO是什么东西并不感兴趣,忽然间在Codeproject看到一片文章,可以在Excel或者Word中写一般的C#程序,看到这句话,就一定要搞清楚是怎么回事了。原来对于VBA的东西很不感冒,所以现在已看到VB的代码就头痛,还好这次看到的是C,而且后边带着#,呵呵。VSTO可以利用Excel作为一个平台,就像WinForm一样,在上边放按钮,核选框等等控件,给用户最大的方便,同时利用了Excel,Word本身拥有的强大功能。据说,在下个竞争的时代,微软的Office产品绝对是一个利器,想想看现在有多少个企业的多少个用户在使用Office,如果这个市场可以深入下去,.....,呵呵,后边就不知道了。预感到Microsoft将借助.net的强大类库和Office所占领的市场,继续猛力的开发Office市场,可能有一个新的纪元的到来......期待中。

简介
在微软,他们正在努力使Office Word 2003 和 Excel 2003 变成一个新的开发平台。那么这句话真正的意思是什么呢?就是说不仅能够使开发人员像Windows窗体那样增加菜单和按钮等控件,而且使开发人员可以用写程序的方式利用Office2003的所有功能(特别是Word和Excel)。在微软,他们通过一个叫做微软办公系统可视化开发工具(VSTO)的技术,致力于体高生产效率和增强程序功能。在这篇文章中,我将向你展示如何写一个运行在Excel中的游戏,当然包括如何使用Excel文档。


介绍
微软发布Office2003以后,已经发布了很多关于VSTO的消息。我第一次接触VSTO是在今年1月份(Koffer注:2004年)的一个Office相关的研讨会上。在这个研讨会上,我看到了一些演示,而且大部分的演示是企业环境下的Office例子。但是,看着那些演示例子,让我想起了一个在19世纪早期很有冲击力的一个游戏,叫做俄罗斯方块Tetris。我想俄罗斯方块将会是一个不错的而且容易向用户展示如何使用VSTO的 例子。这就是为什么要写这篇文章了。

相关信息
大家都已经知道,VSTO并与Visual Studio .net 2003一同发布。这是因为VSTO只是微软办公系统的一个延伸和扩展,并不是.net平台的一个开发工具。VSTO现在并不对外公开(Koffer注:不知道是否真的?),但是你可以在MSDN上下载到。为了安装VSTO,你需要安装如下的程序:

Visual Studio .NET 2003
Microsoft Office System

而且,对于办公系统,你应该选择安装所有的组件或者选在自定义安装,然后选择支持.net可编程的选项。如果你想使你的解决方案正常工作,必须按照如下的顺序安装应用程序:

Microsoft .NET Framework 1.1
Microsoft Office Excel 2003

因为VSTO来自语言安装包,如果你不是安装的英文版的操作系统,你可能需要在你的机器上安装相关的语言包,而且我推荐你去下边这个地址获得关于VSTO一般的信息。http://msdn.microsoft.com/office/understanding/vsto/articles/default.aspx?pull=/library/en-us/odc_vsto2003_ta/html/vstointro.asp. (Koffer注:我的OS是中文的,也没有问题,可能是我安装的VSTO插件也是中文的吧:)).如果你想看一些简单的例子,你也可以在Office的官方站点获得http://msdn.microsoft.com/office/。如果你已经安装了Visual Studio .NET,你也可以从MSDN的帮助文件中获得一些帮助。但是它可能并不能提供足够的知识。我很乐意提供关于VSTO如何工作的更详细的信息,但是对于这篇文章,我主要介绍如何使用VSTO,而且引导你连接最新的信息。

让我们从Windows窗体开始
在向你展示如何写Excel Tetris之前,我先给你看看这个
俄罗斯方块的基础逻辑
使用计时器对象
操作Excel的行和列
处理事件

在我写这篇文章之前,我自己并不熟悉VSTO,因为这个,我一开始并没有用VSTO作为我的测试项目。我决定首先在Windows窗体上执行这个游戏的逻辑,然后把它应用到VSTO上,如果你以前玩过俄罗斯方块的游戏,你知道它很感性,而且非常容易控制,因此每个人都可以玩得来。因为它很简单,所有很多人都作为学习编程的开始,通过执行程序来学习。现在已经有许多可以运行的俄罗斯方块游戏供大家使用,而且都使用了不同的算法。我这篇文章中用的算法,毋庸置疑一定是最棒的,而且我可以自豪地说,我没有参考任何东西写出了每一个行代码!

对于没有玩过俄罗斯方块的人,我在此做一个简单的介绍如何玩这个游戏。(Koffer注:我不翻译这个部分了,如果你真的没有玩过,就去连众或者下载一个玩玩看,玩家的经验一定比任何文字描述都贴切,呵呵)。

文章太长了,待续吧,精彩的文章,请关注下篇