‘未分类’ 分类的存档

1. 本文简介
        开发一款桌面应用软件,界面设计往往需要占据较大部分的工作量。界面设计的好坏,直接决定了软件的客户体验。然而界面设计是一门专业的技术,需要对Windows界面绘制技术有较深的理解,才可以制作出美观大方的界面效果。
       本文主要介绍当前主流的界面设计技术DirectUI,将DirectUI技术与传统的界面设计技术进行比较,最后介绍当前DirectUI技术在国内的发展现状。
2. 传统的UI设计模式
2.1 Windows窗体
        Windows界面程序中,最重要的概念是窗体的概念。窗体是Windows程序中,消息派发的单位,每个窗体都有自己的窗口过程,用于处理Windows派发来的消息,这些消息中,比较容易让人理解的,即是WM_ERASEBKGND消息和WM_PAINT消息。
        当窗体需要重新绘制背景时,系统就会向窗体发送WM_ERASEBKGND消息,窗体接收到这个消息以后,将会调用OnEraseBkgnd函数,刷新窗体的背景。
       当窗体需要被重新绘制时,系统会向窗体发送WM_PAINT消息,则窗体的OnPaint函数将会被调用,以达到重新绘制整个窗体的作用。
        我们不需要纠结于绘制背景和绘制窗体的区别,只需要知道窗体大概就是这样展现出来的即可,而两个消息的响应函数,也并非一定是OnEraseBkgnd和OnPaint,我们可以根据需要自行决定函数名称。
       我们将某个窗体从后台移动到前台时,则该窗体将会依次收到WM_ERASEBKGND和WM_PAINT消息。
2.2 使用Windows API来制作界面
如果纯粹使用Windows API来开发程序界面,则我们需要做的工作大致如下:
1. 设置一个WNDCLASSEX结构,使用这个结构来注册一个新的窗体类别。
2. 创建刚注册的窗口类别的一个窗体实例。
3. 编写一个窗体过程函数,响应第2步中创建的窗体的各种消息。对于不需要特殊处理的消息,则直接调用DefWindowProc处理。
后续的界面处理,有两种选择,一种是再创建子窗体,放在主窗体上,而后子窗体可以有自己的窗体过程函数,以此实现将界面划分不同模块,分开处理。另外一种选择则是将主窗体划分为不同的区域,在OnPaint函数中,根据不同的区域,调用不同的绘制模块,来实现复杂的界面处理。前者可以认为是MFC的雏形,而后者则是DirectUI的思想。
2.3 MFC框架
      MFC是微软提供的一套界面开发工具库,其全称是Microsoft Foundation Classes。早期的界面开发很多是基于MFC框架。
      MFC将对窗体操作的一系列Windows API函数封装成一个CWnd类。封装窗口过程处理函数,提供消息映射机制。即不再需要编写窗口过程,而是直接使用消息映射宏ON_MESSAGE(msg, handler)来映射msg与handler。
      框架提供从CWnd类派生的诸多其他控件类,例如CButton, CStatic, CListCtrl, CCombox, CProgressCtrl等等。每一个界面控件的实例,都包含一个窗体,可以响应发送给该窗体的消息,多个界面控件,以父子控件的层级关系,搭建在一起,就组成了复杂的界面。
MFC框架中提供的基础控件,往往难以满足复杂界面的需求,通常情况下,软件公司会对MFC库进行扩展,并建造自己的界面控件库,以满足不同的需求。

2011年10月20日18:24 | 评论关闭
分类: 未分类
标签:

原文地址: http://www.cnblogs.com/zplutor/archive/2010/08/21/1805335.html
Windows路径是我们经常使用的东西,它看似简单,实际上隐含许多细节,这些都是在平常的使用过程中注意不到的。下面让我们来看看各种各样的Windows路径。
提起路径,我们都会想到“绝对路径”和“相对路径”,实际上绝对路径是一个广泛的概念,它表示的是可以唯一定位一个文件或文件夹的路径,有多种形式的路径都属于绝对路径的范畴,例如:
完整路径(Full path)
我们平时所说的“绝对路径”通常就是指完整路径,它的格式如下:
C:\Windows\System32\calc.exe
UNC(Universal Naming Convention通用命名规范)路径
UNC路径用于在局域网上定位文件或文件夹,在通过网上邻居访问其它系统上的共享文件时使用的就是UNC路径。UNC路径的格式如下:
\\PC101\ShareFiles\job.doc
其中PC101是目标系统的计算机名,ShareFiles是目标系统上的共享文件夹名称。
以\\?\开头的路径
在某些手工辅助杀毒的工具中可以看到以\\?\开头的路径,这种路径我还找不到正式的名称。完整路径和UNC路径都可以以\\?\开头:
\\?\C:\Windows\System32\calc.exe
\\?\UNC\PC101\ShareFiles\job.doc
相对路径(Relative path)
上面四种路径都可以在本地或网络上绝对定位一个文件,因此属于绝对路径。另一种我们常常使用的是相对路径,这种路径需要与进程的当前文件夹(Current directory)一起合作才可以定位一个文件或文件夹。进程的当前文件夹并不是指EXE文件所在的文件夹,它是每个进程都有的一个属性。例如在命令提示符中显示的路径就是这个cmd.exe进程的当前文件夹,使用cd命令可以改变当前文件夹,无论当前文件夹如何改变,cmd.exe文件所在的文件夹总是不变的。在进程启动的时候可以指定它的当前文件夹,例如在快捷方式的属性中有一个“起始位置”输入框,这个就是进程启动后的当前文件夹。如果在启动时不指定进程的当前文件夹(直接双击EXE文件的情况),那么EXE文件的所在文件夹就会作为它的当前文件夹。
纯粹的相对路径格式如下:
Windows\System32\calc.exe
要注意的是相对路径的开头不能有\,很多人以为有没有\都是一样的,其实不然,以\开头的路径是另外一种路径,下文会详细介绍这种路径。
如果在进程中操作文件时传递一个相对路径,那么进程会将当前文件夹的路径与这个相对路径合并,得到一个完整路径。例如命令提示符的当前文件夹是C:\Windows,如果执行start System32\calc.exe命令,程序就会将两个路径合并得到C:\Windows\System32\calc.exe。
由于这样的特性,当前文件夹又称为工作文件夹,因为进程使用相对路径时都是针对该文件夹的。
除了上面所说的纯粹的相对路径,还有两种特殊的相对路径,为了不至于混淆,不再将它们称为相对路径。
以\开头的路径
上面说过相对路径不能以\开头,一旦如此,它就表示相对于当前文件夹根目录的路径。例如进程的当前文件夹是C:\Windows,那么\System32\calc.exe就表示C:\System32\calc.exe。不论当前文件夹的路径有多深,只取根目录进行合并。可以在命令提示符中进行验证:首先将C:\Windows设置为当前文件夹,然后执行start \System32\calc.exe命令,将会提示错误,所找不到文件。再执行start \Windows\System32\calc.exe命令,这时计算器程序成功启动了,证明了上面的说法。
以盘符和冒号开头的路径
这种路径就像是拼写错误的完整路径,它的格式如下:
C:System32\calc.exe
盘符加冒号是一种特殊的表示法,表示的是进程在“该分区上的当前文件夹”。这里又蹦出来了一个当前文件夹,这与上文的当前文件夹是不同的。简单来说,对于每一个分区,进程都会保存在这个分区上最后使用的当前文件夹。可能解析的不够好,那么可以使用命令提示符来操作一遍以加深理解。

2010年11月3日22:33 | 评论关闭
分类: 未分类
标签:

Web Service 就是一个向外界暴露出的能够通过Internet进行调用的API或者说应用程序,我们能够通过用一般的编程方法通过Internet来调用这些Web Service应用程序。

举个例子:如果你想创建一个Web Service,它的作用是返回当天的天气情况,那么你可以建立一个页面,接受邮政编码作为查询字符串,然后返回一个字符串,包括当天的天气和气温等。要调用这个页面,客户端需要发送一个HTTP GET请求,然后就可以返回当天的天气情况,这个页面可以算作是最简单的Web Service了。

Web Service是一种部署在Web上的对象,它们具有对象技术所承诺的所有优点,同时,Web Service建立在以XML为主的,开放的Web规范技术基础上,是建立可互操作的分布式应用程序的新平台。Web Services是基于网络的,分布式的模块化组件。

Web Service平台的主要四个技术

XML:可扩展标记语言, 解决了数据表示的问题。

SOAP:简单对象访问协议,提供了标准的RPC方法来调用Web service。

WSDL:Web Service描述语言,用机器能阅读的方式提供一个正式的描述文档。

UDDI:通用描述,发现和集成

2010年7月15日10:14 | 评论关闭
分类: 未分类
标签:

在Lucky的大力运作下,co-blog开张了,各位加油。

2010年7月4日17:03 | 1 条评论
分类: 未分类
标签: