wParam, lParam) ; }
POPPAD1是一个多行编辑器(只是没有档案I/O),其C语言原始码不到100行(不过,有一个缺陷,即预先定义的多行编辑控制项只限於30,000字元的文字)。您可以看到,POPPAD1本身并没有做多少工作,预先定义的编辑控制项完成了许多工作,这样,您可以知道,无需额外的程式时编辑控制项能做些什么。
编辑类别样式
如前面所提到的,在CreateWindow呼叫中将「edit」作为视窗类别建立了一个编辑控制项,视窗样式是WS_CHILD加上几个选项。如同在静态子视窗控制项中一样,编辑控制项中的文字可以置左对齐、置右对齐或者居中,您使用视窗样式ES_LEFT、ES_RIGHT和ES_CENTER来指定这些格式。
内定状态下,编辑控制项是单行的。您使用ES_MULTILINE视窗样式可以建立多行编辑控制项。对於单行编辑控制项,您一般只可以在编辑控制项矩形的尾部输入文字。要建立一个自动水平卷动的编辑控制项,您可以采用样式ES_AUTOHSCROLL。对一个多行编辑控制项,文字会自动跳行,除非使用ES_AUTOHSCROLL样式。在这种情况下,您必须按Enter键来开始新的一行。您还可以便用样式ES_AUTOVSCROLL来将垂直卷动列包括在多行编辑控制项中。
当您在多行编辑控制项中包括这些卷动样式时,也许还想给编辑控制项增加卷动列。要做到这些,可以对非子视窗使用同一视窗样式识别字WS_HSCROLL和WS_VSCROLL。内定状态下,编辑控制项没有边界,利用样式WS_BORDER则可以增加边界。
当您在编辑控制项中选择文字时,Windows将选择的文字反白显示。但是当编辑控制项失去输入焦点时,被选择的文字将不再被加亮。如果希望在编辑控制项没有输入焦点时被选择的文字仍然被加亮,您可以使用样式ES_NOHIDESEL。
在POPPAD1建立其编辑控制项时,CreateWindow呼叫依如下形式给出样式:
WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | WS_BORDER | ES_LEFT | ES_MULTILINE | ES_AUTOHSCROLL | ES_AUTOVSCROLL
在POPPAD1中,编辑控制项的大小是後来当WndProc接收到WM_SIZE讯息时通过呼叫MoveWindow来定义的 |