初级软件实作 - 星便笺 - 之一

【前记】

很久很久没有写博客园了,其实我压根就没写过博文,额。。。。。再不写这博客开来就浪费了。

这个学期我们开始有软件实作课程,题目是抽的,我抽到的是做个仿Windows便笺的小程序。题目如下:

Minipad2(便笺小程序):可在windows中打开一个小窗口来记录内容

按用户点击,在Windows屏幕的特定的位置,生成一个便笺

便笺可录入文字,图片,音频,链接,保存

可设置为固定便笺(windows开机后自动打开)

便笺可移动位置,也可以隐藏更改大小

 

额, 当初没怎么看题目,现在复制过来才发现,这个题目要求还是蛮多的= =。居然还要图片、音频、链接。

个人特别喜欢Windows 7的桌面便笺,做得太好了,简约,记点儿琐碎的事儿特别方便,界面也很棒,特别是这几天还发现有几个隐藏的功能,详见Microsoft官方的介绍:http://windows.microsoft.com/zh-cn/windows7/using-sticky-notes

用什么语言开发呢?当然是我最熟悉的C#.net啦,想法很多,已经写了近两个星期了,要吐血了,已经实现了挺多功能的,不过离目标还好远啊。现在已经实现的有:

1、透明存储。

      将所有的文件操作封装在一个静态类里,每次要保持便笺只要填写一些参数再调用函数就可以了。这里面是和第二个结合在一起使用的,即时存储,虽然磁盘压力可能比较大,但数据量很小的情况下应该问题不大。考虑过用轻量级数据库,比如Access、SQLite之类的。后来觉得,太麻烦了,自己写一个文件不就完了吗。文件目录默认在系统盘,重装会丢,考虑到Windows便笺也是这样的,所以不管了。以后最多加个备份功能呗,反正这个是根据用户加密的,密钥与Windows用户有关,只要换一个用户就无法读取了。

 

2、文件采用DES加密,用户透明。

     文件采用可逆加密,密钥与用户有关,尽量在用户层透明,用户不用额外登录什么的,进入桌面之后就可以用,且不同的用户之间相互独立,哈哈,个人觉得这个想法蛮好的,我的目标就是尽可能简约。但是,必须要简约而不简单,用户体验很重要。

 

3、文本的基本格式模仿json,自己写了一个函数将类的属性转换为json字符串,再转换回来。

      php有专门的函数实现(json_encode、json_decode)这个不多说了,就是字符串的处理问题。

 

4、所有的便笺会在同一个层显示。

      就像Windows 7的便笺一样,单击任务栏的图标,所有的便笺都能显示出来。这个实现起来比较纠结。当初查资料查得快疯了,压根搞不懂它是怎么实现的。不知该叫什么技术。具体的效果是这样的:

图中的每一个便笺在预览时都是同时显示的

 

5、自定义窗体外形、窗口淡入淡出以及无焦点窗体,基本都是纯代码实现的,因为自定义窗体形状之后Win API不起作用。

 

 

主要的就这么多吧,上图。右下角的红色是测试用的哈~

 

以上是已经实现的功能,代码先不上了,以后再上吧,接下来要实现的还很多,稍微列一下:

  • 闹钟
  • 在RichTextBox里插入图片,并且图片有链接

 

 

posted @ 2013-04-19 16:23  斐儿不一般  阅读(261)  评论(2编辑  收藏  举报