和
如果bPrevious为TRUE,那么函式传回前一个Tab键停留项或组项;如果为FALSE,则传回下一个Tab键停留项或者组项。
在对话方块上画图
ABOUT2还完成了一些相对说来很特别的事情,亦即在对话方块上画图。让我们来看一看它是怎样做的。在ABOUT2.RC的对话方块模板内,使用位置和大小为我们想要画图的区域定义了一块空白文字控制项:
这个区域为18个字元宽和9个字元高。由於这个控制项没有文字,所以视窗讯息处理程式为「静态」类别所做的工作,只是在必须重绘这个子视窗控制项时清除其背景。
在目前颜色或图形选择发生改变,或者对话方块自身获得一个WM_PAINT讯息时,对话方块程序呼叫PaintTheBlock,这个函式在ABOUT2.C中:
在AboutDlgProc中,视窗代号hCtrlBlock已经在处理WM_INITDIALOG讯息时被设定:
下面是PaintTheBlock函式:
这个函式使得子视窗控制项无效,并为控制项视窗讯息处理程式产生一个WM_PAINT讯息,然後呼叫ABOUT2中的另一个函式PaintWindow 。
PaintWindow函式取得一个装置内容代号,并将其放到hCtrl中,画出所选图形,根据所选颜色用一个著色画刷填入图形。子视窗控制项的大小从GetClientRect获得。尽管对话方块模板以字元为单位定义了控制项的大小,但GetClientRect取得以图素为单位的