|
ATIC讯息中呼叫SetTextColor来著色的。文字背景用SetBkColor函式设定为系统颜色COLOR_BTNHIGHLIGHT,这导致文字背景颜色和卷动列与文字後面的静态矩形控制项的颜色一样。对於静态文字控制项,这种文字背景颜色只用於字串中每个字元後面的矩形,而不会用於整个控制项视窗。为了实作这一点,视窗讯息处理程式还必须传回COLOR_BTNHIGHLIGHT颜色画刷的代号。这个画刷被称为hBrushStatic,它在WM_CREATE讯息处理期间建立,在WM_DESTROY讯息处理期间清除。
在WM_CREATE讯息处理期间依据COLOR_BTNHIGHLIGHT颜色建立画刷,并且在执行期间使用这一画刷时,我们遇到了一个小问题。如果程式在执行期间改变了COLOR_BTNHIGHLIGHT颜色,那么静态矩形的颜色将发生变化,并且文字背景的颜色也会变化,但是文字视窗控制项的整个背景将保持原有的COLOR_BTNHIGHLIGHT颜色。
为了解决这个问题,COLORS1也简单地通过使用新颜色重新建立hBrushStatic来处理WM_SYSCOLORCHANGE讯息。
编辑类别
在某些方面,编辑类别是最简单的预先定义视窗类别;在另一方面,它又是最复杂的视窗类别。当您使用类别名称「edit」建立子视窗时,您根据CreateWindow呼叫中的x位置、y位置、宽度和高度这些参数定义了一个矩形。此矩形含有可编辑文字。当子视窗控制项拥有输入焦点时,您可以输入文字,移动游标,使用滑鼠或者Shift键与一个游标键来选取部分文字,按Ctrl-X来删除所选文字或按Ctrl-C来复制所选文字、并送到剪贴簿上,按Ctrl-V键插入剪贴簿上的文字。
编辑控制项的最简单的应用之一是作为单行输入区域。但是编辑控制项并不仅限於单行,这一点我将在程式9-4
POPPAD1中说明。和我们在这本书中所遇到的各种其他问题一样,
POPPAD程式将逐步增强以使用功能表、对话方块(载入与储存档案)和列印。最後的版本将是一个简单而完整的文字编辑器,且其程式码将非常简洁。
程式9-4 POPPAD1 POPPAD1.C /*--------------------------------------------------------------------------- POPP |