|
。编辑控制项的尺寸被简单地设定为主视窗的尺寸:
MoveWindow (hwndEdit, 0, 0, LOWORD (lParam), HIWORD (lParam), TRUE) ;
对於单行编辑控制项,控制项的高度必须可以容纳一个字元。如果编辑控制项有边界(大多数都有),那么使用一个字元高度的1.5倍(包括外部间距)。
编辑控制项通知
编辑控制项给父视窗讯息处理程式发送WM_COMMAND讯息,对按钮控制项来说,wParam和lParam变数的含义是相同的:
| LOWORD (wParam)
HIWORD
(wParam)
lParam |
子视窗ID
通知码
子视窗代号 |
通知码如下所示:
| EN_SETFOCUS
EN_KILLFOCUS
EN_CHANGE
EN_UPDATE
EN_ERRSPACE
EN_MAXTEXT
EN_HSCROLL
EN_VSCROLL |
编辑控制项已经获得输入焦点
编辑控制项已经失去输入焦点
编辑控制项的内容将改变
编辑控制项的内容已经改变
编辑控制项执行已经超出中间
编辑控制项在插入时执行超出空间
编辑控制项的水平卷动列已经被按下
编辑控制项的垂直卷动列已经被按下 |
POPPAD1只拦截EN_ERRSPACE和EN_MAXTEXT通知码,并显示一个讯息方块。
使用编辑控制项
如果在您的主视窗上使用了几个单行编辑控制项,那么您需要将视窗子类别化以便把输入焦点从一个控制项转移到另一个控制项。您可以通过拦截Tab键和Shift-Tab键来完成这种移动,非常像COLORS1中所做的(视窗子类别化的另一个例子在後面的HEAD程式中说明)。如何处理Enter键取决於您,可以像Tab键那样使用,也可以当成给程式的信号,表示所有的编辑栏位都准备好了。
如果您想在编辑区中插入文字,那么可以使用SetWindowText来做到。将文字从编辑控制项中取出涉及了GetWindowTextLength和GetWindowText,我们将在POPPAD程式的修订版本中看到这些操作的实例。
发送给编辑控制项的讯息
因为用SendMessage发送给编辑控制项的讯息很多,并且其中的几个还将在後面POPPAD修订版本中用到,所以这里不解说所有用SendMessage发送给编辑控制项的讯息, |