第三部分:MFC样式
控制是用来建立Windows应用程序用户界面的用户界面对象。你所见到的大部分Windows应用程序和对话框只不过是由一些控制所组成的、用来实现程序功能的东西。为了建立有效的应用程序,你必须完全理解在Windows应用程序中应该如何合理的使用控制。有六个基本的控制:CStatic、CButton、CEdit、CList、CComboBox和CScrollBar。另外,Windows 95又增加了15增强了的控制。你需要理解的是那个控制能做些什么、你应该如何控制它的外表和行为以及如何让控制能响应用户事件。只要掌握了这些,再加上掌握了菜单和对话框,你就可以建立你所想象的任何Windows应用程序。你可以象本教程这样用程序代码来建立控制,也可以使用资源编辑器通过资源文件来建立。当然,对话框编辑器更方便些,它对于已经基本掌握了控制的情况下特别有用。
最简单的控制是CStatic, 它是用来显示静态文本的。CStatic类没有任何数据成员,它只有少量的成员函数:构造函数、Create函数(用于获取和设置静态控制上的图标)等等。它不响应用户事件。因为它的简单性,所以最好把它作为学习Windows控制的开端。
在本讲中,我们从CStatic着手,看一下如何修改和定制控制。在下一讲中,我们将学习CButton和CScrollBar类,以理解事件处理的概念。一旦你理解和掌握了所有控制极其类,你就可以建立完整的应用程序了。
基 础
MFC中的CStatic类是用来显示静态文本信息的。这些信息能够可以作为纯信息(例如,显示在信息对话框中的错误消息), 或作为小的标签等。在Windows应用程序的文件打开对话框中,你会发现有六个这样的标签。
CStatic控制还有几种其它的显示格式。你可以通过修改标签的样式来使它表现为矩形、边框或图标等。
CStatic控制总是作为子窗口的形式出现的。典型情况下,其父窗口是应用程序的主窗口或对话框。正如上一讲所介绍的,你用两行代码就可以建立一个静态控制:
CStatic *cs;
...
cs = new CStatic();
cs->Create("hello world",
WS_CHILD|WS_VISIBLE|SS_CENTER,
CRect(50,80, 150, 150),
this);
这两行代码是典型的MFC建立所有控制的代码。调用new来为CStatic类的事例分配内存,然后调用类的构造函数。构造函数是用来完成类所需要的初始化功能的。Create函数建立控制并把它放到屏幕上。
Create函数有五个参数:
lpszText: 指定了要显示的文本。
rect: 控制文本区域的位置、大小和形状。
pParentWnd: 指明CStatic控制的父窗口。该控制会出现在其父窗口中,且其位置是相对于其父窗口的用户区域而言的。
nID: 整数值,表示该控制的标识符。
dwStyle: 最重要的参数。它控制着控制的外观和行为。
CStatic样式
所有的控制都有各种显示样式。样式是在用Create函数建立控制时传递给它的dwStyle参数所决定的。对CStatic有效的样式简介如下: