|
些讯息也同样被显示。我将在本章的後面更详细地讨论这种拥有者绘制(owner
draw)按钮。

建立子视窗
BTNLOOK定义了一个叫做button的结构,它包括了按钮视窗样式和描述性字串,它们对应於10个按钮型态,所有按钮视窗样式都以字母「BS」开头,它表示「按钮样式」。10个按钮子视窗是在WndProc中处理WM_CREATE讯息的过程中使用一个for回圈建立的。CreateWindow呼叫使用下面这些参数:
| Class
name(类别名称)
Window
text(视窗文字)
Window
style(视窗样式)
x
position(x位置)
y
position(y位置)
Width(宽度)
Height(高度)
Parent
window(父视窗)
Child window
ID(子视窗ID)
Instance
handle(执行实体代号)
Extra
parameters(附加参数) |
TEXT ("button")
button[i].szText
WS_CHILD |
WS_VISIBLE | button[i].iStyle
cxChar
cyChar * (1 +
2 * i)
20 *
xChar
7 * yChar /
4
hwnd
(HMENU)
i
((LPCREATESTRUCT) lParam) -> hInstance
NULL |
类别名称参数是预先定义的名字。视窗样式使用WS_CHILD、WS_VISIBLE以及在button结构中定义的10个按钮样式之一(BS_PUSHBUTTON、BS_DEFPUSHBUTTON等等)。视窗文字参数(对於普通视窗来说,它是显示在标题列中的文字)将在每个按钮上显示出来。我简单地使用标识按钮样式文字的x位置和y位置参数,说明子视窗左上角相对於父视窗显示区域左上角的位置。宽度和高度参数规定了每个子视窗的宽度和高度。请注意,我用的是GetDialogBaseUnits函式来获得内定字体字元的宽度和高度。这 |