MFC的CEdit类封装了编辑框控件。CEdit类的成员函数Create负责创建按钮控件,该函数的声明为
BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );
参数dwStyle指定了编辑框控件风格,如表6.6所示,dwStyle可以是这些风格的组合。rect指定了编辑框的位置和尺寸。pParentWnd指定了父窗口,不能为NULL。编辑框的ID由nID指定。如果创建成功,该函数返回TRUE,否则返回FALSE.
表6.6 编辑框控件的风格
控件风格
含义
ES_AUTOHSCROLL
当用户在行尾键入一个字符时,正文将自动向右滚动10个字符,当用户按回车键时,正文总是滚向左边。
ES_AUTOVSCROLL
当用户在最后一个可见行按回车键时,正文向上滚动一页。
ES_CENTER
在多行编辑框中使正文居中。
ES_LEFT
左对齐正文。
ES_LOWERCASE
把用户输入的字母统统转换成小写字母。
ES_MULTILINE
指定一个多行编辑器。若多行编辑器不指定ES_AUTOHSCROLL风格,则会自动换行,若不指定ES_AUTOVSCROLL,则多行编辑器会在窗口中正文装满时发出警告声响。
ES_NOHIDESEL
缺省时,当编辑框失去输入焦点后会隐藏所选的正文,当获得输入焦点时又显示出来。设置该风格可禁止这种缺省行为。
ES_OEMCONVERT
使编辑框中的正文可以在ANSI字符集和OEM字符集之间相互转换。这在编辑框中包含文件名时是很有用的。
ES_PASSWORD
使所有键入的字符都用“*”来显示。
ES_RIGHT
右对齐正文。
ES_UPPERCASE
把用户输入的字母统统转换成大写字母。
ES_READONLY
将编辑框设置成只读的。
ES_WANTRETURN
使多行编辑器接收回车键输入并换行。如果不指定该风格,按回车键会选择缺省的命令按钮,这往往会导致对话框的关闭。
除了上表中的风格外,一般还要为控件指定WS_CHILD、WS_VISIBLE、WS_TABSTOP和WS_BORDER窗口风格,WS_BORDER使控件带边框。创建一个普通的单行编辑框应指定风格为WS_CHILD|WS_VISIBLE|WS_TABSTOP |WS_BORDER|ES_LEFT|ES_AUTOHSCROLL,这将创建一个带边框、左对齐正文、可水平滚动的单行编辑器。要创建一个普通多行编辑框,还要附加ES_MULTILINE|ES_WANTRETURN|ES_AUTOVSCROLL |WS_HSCROLL| WS_VSCROLL风格,这将创建一个可水平和垂直滚动的,带有水平和垂直滚动条的多行编辑器。
对于用对话框模板编辑器创建的编辑框控件,可以在控件的属性对话框中指定表6.6中列出的控件风格。例如,在属性对话框中选择Multi-line项,相当与指定了ES_MULTILINE风格。
编辑框支持剪贴板操作。CEdit类提供了一些与剪贴板有关的成员函数,如表6.7所示。
表6.7 与剪切板有关的CEdit成员函数
函数声明
用途
void Clear( )
清除编辑框中被选择的正文。
void Copy( )
把在编辑框中选择的正文拷贝到剪贴板中。
void Cut( )
清除编辑框中被选择的正文并把这些正文拷贝到剪贴板中。
void Paste( )
将剪贴板中的正文插入到编辑框的当前插入符处。
BOOL Undo( )
撤消上一次键入。对于单行编辑框,该函数总返回TRUE,对于多行编辑框,返回TRUE表明操作成功,否则返回FALSE。
可以用下列CEdit或CWnd类的成员函数来查询编辑框。在学习下面的函数时,读者会经常遇到术语字符索引.字符的字符索引是指从编辑框的开头字符开始的字符编号,它是从零开始编号的.也就是说,字符索引实际上是指当把整个编辑正文看作一个字符串