📄 chap6_1.htm
字号:
<tr>
<td WIDTH="31%"><font FACE="Times New Roman" SIZE="3"><p ALIGN="JUSTIFY">ES_PASSWORD</font></td>
<td WIDTH="69%"><font SIZE="3"><p ALIGN="JUSTIFY">使所有键入的字符都用“</font><font FACE="Times New Roman" SIZE="3">*</font><font SIZE="3">”来显示。</font></td>
</tr>
<tr>
<td WIDTH="31%"><font FACE="Times New Roman" SIZE="3"><p ALIGN="JUSTIFY">ES_RIGHT</font></td>
<td WIDTH="69%"><font SIZE="3"><p ALIGN="JUSTIFY">右对齐正文。</font></td>
</tr>
<tr>
<td WIDTH="31%"><font FACE="Times New Roman" SIZE="3"><p ALIGN="JUSTIFY">ES_UPPERCASE</font></td>
<td WIDTH="69%"><font SIZE="3"><p ALIGN="JUSTIFY">把用户输入的字母统统转换成大写字母。</font></td>
</tr>
<tr>
<td WIDTH="31%"><font FACE="Times New Roman" SIZE="3"><p ALIGN="JUSTIFY">ES_READONLY</font></td>
<td WIDTH="69%"><font SIZE="3"><p ALIGN="JUSTIFY">将编辑框设置成只读的。</font></td>
</tr>
<tr>
<td WIDTH="31%"><font FACE="Times New Roman" SIZE="3"><p ALIGN="JUSTIFY">ES_WANTRETURN</font></td>
<td WIDTH="69%"><font SIZE="3"><p ALIGN="JUSTIFY">使多行编辑器接收回车键输入并换行。如果不指定该风格,按回车键会选择缺省的命令按钮,这往往会导致对话框的关闭。</font></td>
</tr>
</table>
<p><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">除了上表中的风格外,一般还要为控件指定</font><font FACE="Times New Roman" SIZE="3">WS_CHILD</font><font SIZE="3">、</font><font FACE="Times New Roman" SIZE="3">WS_VISIBLE</font><font SIZE="3">、</font><font FACE="Times New Roman" SIZE="3">WS_TABSTOP</font><font SIZE="3">和</font><font FACE="Times New Roman" SIZE="3">WS_BORDER</font><font SIZE="3">窗口风格,</font><font FACE="Times New Roman" SIZE="3">WS_BORDER</font><font SIZE="3">使控件带边框。创建一个普通的单行编辑框应指定风格为</font><font FACE="Times New Roman" SIZE="3">WS_CHILD|WS_VISIBLE|WS_TABSTOP
|WS_BORDER|ES_LEFT|ES_AUTOHSCROLL</font><font SIZE="3">,这将创建一个带边框、左对齐正文、可水平滚动的单行编辑器。要创建一个普通多行编辑框,还要附加</font><font FACE="Times New Roman" SIZE="3">ES_MULTILINE|ES_WANTRETURN|ES_AUTOVSCROLL |WS_HSCROLL|
WS_VSCROLL</font><font SIZE="3">风格,这将创建一个可水平和垂直滚动的,带有水平和垂直滚动条的多行编辑器。</font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">对于用对话框模板编辑器创建的编辑框控件,可以在控件的属性对话框中指定表</font><font FACE="Times New Roman" SIZE="3">6.6</font><font SIZE="3">中列出的控件风格。例如,在属性对话框中选择</font><font FACE="Times New Roman" SIZE="3">Multi-line</font><font SIZE="3">项,相当与指定了</font><font FACE="Times New Roman" SIZE="3">ES_MULTILINE</font><font SIZE="3">风格。</font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">编辑框支持剪贴板操作。</font><font FACE="Times New Roman" SIZE="3">CEdit</font><font SIZE="3">类提供了一些与剪贴板有关的成员函数,如表</font><font FACE="Times New Roman" SIZE="3">6.7</font><font SIZE="3">所示。</font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY"></font><b><font SIZE="3"> </p>
<p ALIGN="CENTER">表</font><font FACE="Times New Roman" SIZE="3">6.7 </font><font SIZE="3">与剪切板有关的</font><font FACE="Times New Roman" SIZE="3">CEdit</font><font SIZE="3">成员函数</font></b></p>
<table BORDER="1" CELLSPACING="1" CELLPADDING="1" WIDTH="579">
<tr>
<td WIDTH="35%"><font SIZE="3"><b><p ALIGN="JUSTIFY">函数声明</b></font></td>
<td WIDTH="65%"><font SIZE="3"><b><p ALIGN="JUSTIFY">用途</b></font></td>
</tr>
<tr>
<td WIDTH="35%"><font FACE="Times New Roman" SIZE="3"><p ALIGN="JUSTIFY">void Clear( )</font></td>
<td WIDTH="65%"><font SIZE="3"><p ALIGN="JUSTIFY">清除编辑框中被选择的正文。</font></td>
</tr>
<tr>
<td WIDTH="35%"><font FACE="Times New Roman" SIZE="3"><p ALIGN="JUSTIFY">void Copy( )</font></td>
<td WIDTH="65%"><font SIZE="3"><p ALIGN="JUSTIFY">把在编辑框中选择的正文拷贝到剪贴板中。</font></td>
</tr>
<tr>
<td WIDTH="35%"><font FACE="Times New Roman" SIZE="3"><p ALIGN="JUSTIFY">void Cut( )</font></td>
<td WIDTH="65%"><font SIZE="3"><p ALIGN="JUSTIFY">清除编辑框中被选择的正文并把这些正文拷贝到剪贴板中。</font></td>
</tr>
<tr>
<td WIDTH="35%"><font FACE="Times New Roman" SIZE="3"><p ALIGN="JUSTIFY">void Paste( )</font></td>
<td WIDTH="65%"><font SIZE="3"><p ALIGN="JUSTIFY">将剪贴板中的正文插入到编辑框的当前插入符处。</font></td>
</tr>
<tr>
<td WIDTH="35%"><font FACE="Times New Roman" SIZE="3"><p ALIGN="JUSTIFY">BOOL Undo( )</font></td>
<td WIDTH="65%"><font SIZE="3"><p ALIGN="JUSTIFY">撤消上一次键入。对于单行编辑框,该函数总返回</font><font FACE="Times New Roman" SIZE="3">TRUE</font><font SIZE="3">,对于多行编辑框,返回</font><font FACE="Times New Roman" SIZE="3">TRUE</font><font SIZE="3">表明操作成功,否则返回</font><font FACE="Times New Roman" SIZE="3">FALSE</font><font SIZE="3">。</font></td>
</tr>
</table>
<p><b><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY"></font></b><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">可以用下列</font><font FACE="Times New Roman" SIZE="3">CEdit</font><font SIZE="3">或</font><font FACE="Times New Roman" SIZE="3">CWnd</font><font SIZE="3">类的成员函数来查询编辑框。在学习下面的函数时,读者会经常遇到术语字符索引.字符的字符索引是指从编辑框的开头字符开始的字符编号,它是从零开始编号的.也就是说,字符索引实际上是指当把整个编辑正文看作一个字符串数组时,该字符所在的数组元素的下标.</font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
<blockquote>
<blockquote>
<p ALIGN="JUSTIFY">int GetWindowText( LPTSTR lpszStringBuf, int nMaxCount ) const;<br>
void GetWindowText( CString& rString ) const;<br>
</font><font SIZE="3">这两个函数均是</font><font FACE="Times New Roman" SIZE="3">CWnd</font><font SIZE="3">类的成员函数,可用来获得窗口的标题或控件中的正文。第一个版本的函数用</font><font FACE="Times New Roman" SIZE="3">lpszStringBuf</font><font SIZE="3">参数指向的字符串数组作为拷贝正文的缓冲区,参数</font><font FACE="Times New Roman" SIZE="3">nMaxCount</font><font SIZE="3">可以拷贝到缓冲区中的最大字符数,该函数返回以字节为单位的实际拷贝字符数(不包括结尾的空字节)。第二个版本的函数用一个</font><font FACE="Times New Roman" SIZE="3">CString</font><font SIZE="3">对象作为缓冲区。</p>
</font><font FACE="Times New Roman" SIZE="3"><p ALIGN="JUSTIFY">int GetWindowTextLength( )
const;<br>
CWnd</font><font SIZE="3">的成员函数,可用来获得窗口的标题或控件中的正文的长度。</p>
</font><font FACE="Times New Roman" SIZE="3"><p ALIGN="JUSTIFY">DWORD GetSel( ) const;<br>
void GetSel( int& nStartChar, int& nEndChar ) const;<br>
</font><font SIZE="3">两个函数都是</font><font FACE="Times New Roman" SIZE="3">CEdit</font><font SIZE="3">的成员函数,用来获得所选正文的位置。</font><font FACE="Times New Roman" SIZE="3">GetSel</font><font SIZE="3">的第一个版本返回一个</font><font FACE="Times New Roman" SIZE="3">DWORD</font><font SIZE="3">值,其中低位字说明了被选择的正文开始处的字符索引,高位字说明了选择的正文结束处的后面一个字符的字符索引,如果没有正文被选择,那么返回的低位和高位字节都是当前插入符所在字符的字符索引。</font><font FACE="Times New Roman" SIZE="3">GetSel</font><font SIZE="3">的第二个版本的两个参数是两个引用,其含义与第一个版本函数返回值的低位和高位字相同。</p>
</font><font FACE="Times New Roman" SIZE="3"><p ALIGN="JUSTIFY">int LineFromChar( int
nIndex = </font><font SIZE="3">–</font><font FACE="Times New Roman" SIZE="3">1 ) const;<br>
CEdit</font><font SIZE="3">的成员函数,仅用于多行编辑框,用来返回指定字符索引所在行的行索引(从零开始编号)。参数</font><font FACE="Times New Roman" SIZE="3">nIndex</font><font SIZE="3">指定了一个字符索引,如果</font><font FACE="Times New Roman" SIZE="3">nIndex</font><font SIZE="3">是</font><font FACE="Times New Roman" SIZE="3">-1</font><font SIZE="3">,那么函数将返回选择正文的第一个字符所在行的行号,若没有正文被选择,则该函数会返回当前的插入符所在行的行号。</p>
</font><font FACE="Times New Roman" SIZE="3"><p ALIGN="JUSTIFY">int LineIndex( int nLine =
</font><font SIZE="3">–</font><font FACE="Times New Roman" SIZE="3">1 ) const;<br>
CEdit</font><font SIZE="3">的成员函数,仅用于多行编辑框,用来获得指定行的开头字符的字符索引,如果指定行超过了编辑框中的最大行数,该函数将返回</font><font FACE="Times New Roman" SIZE="3">-1</font><font SIZE="3">。参数</font><font FACE="Times New Roman" SIZE="3">nLine</font><font SIZE="3">是指定了从零开始的行索引,如果它的值为</font><font FACE="Times New Roman" SIZE="3">-1</font><font SIZE="3">,则函数返回当前的插入符所在行的字符索引。</p>
</font><font FACE="Times New Roman" SIZE="3"><p ALIGN="JUSTIFY">int GetLineCount( ) const;<br>
CEdit</font><font SIZE="3">的成员函数,仅用于多行编辑框,用来获得正文的行数。如果编辑框是空的,那么该函数的返回值是</font><font FACE="Times New Roman" SIZE="3">1</font><font SIZE="3">。</p>
</font><font FACE="Times New Roman" SIZE="3"><p ALIGN="JUSTIFY">int LineLength( int nLine
= </font><font SIZE="3">–</font><font FACE="Times New Roman" SIZE="3">1 ) const;<br>
CEdit</font><font SIZE="3">的成员函数,用于获取指定字符索引所在行的字节长度(行尾的回车和换行符不计算在内)。参数</font><font FACE="Times New Roman" SIZE="3">nLine</font><font SIZE="3">说明了字符索引.如果</font><font FACE="Times New Roman" SIZE="3">nLine</font><font SIZE="3">的值为</font><font FACE="Times New Roman" SIZE="3">-1</font><font SIZE="3">,则函数返回当前行的长度(假如没有正文被选择),或选择正文占据的行的字符总数减去选择正文的字符数(假如有正文被选择)。若用于单行编辑框,则函数返回整个正文的长度。</p>
</font><font FACE="Times New Roman" SIZE="3"><p ALIGN="JUSTIFY">int GetLine( int nIndex,
LPTSTR lpszBuffer ) const;<br>
int GetLine( int nIndex, LPTSTR lpszBuffer, int nMaxLength ) const;<br>
CEdit</font><font SIZE="3">的成员函数,仅用于多行编辑框,用来获得指定行的正文(不包括行尾的回车和换行符)。参数</font><font FACE="Times New Roman" SIZE="3">nIndex</font><font SIZE="3">是行号,</font><font FACE="Times New Roman" SIZE="3">lpszBuffer</font><font SIZE="3">指向存放正文的缓冲区,</font><font FACE="Times New Roman" SIZE="3">nMaxLength</font><font SIZE="3">规定了拷贝的最大字节数,若。函数返回实际拷贝的字节数,若指定的行号大于编辑框的实际行数,则函数返回</font><font FACE="Times New Roman" SIZE="3">0</font><font SIZE="3">。需要注意的是,</font><font FACE="Times New Roman" SIZE="3">GetLine</font><font SIZE="3">函数不会在缓冲区中字符串的末尾加字符串结束符</font><font FACE="Times New Roman" SIZE="3">(NULL)</font><font SIZE="3">.</font></p>
</blockquote>
</blockquote>
<p><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">下列</font><font FACE="Times New Roman" SIZE="3">CWnd</font><font SIZE="3">或</font><font FACE="Times New Roman" SIZE="3">CEdit</font><font SIZE="3">类的成员函数可用来修改编辑框控件。</p>
<blockquote>
<blockquote>
</font><font FACE="Times New Roman" SIZE="3"><p ALIGN="JUSTIFY">void SetWindowText(
LPCTSTR lpszString );<br>
CWnd</font><font SIZE="3">的成员函数,可用来设置窗口的标题或控件中的正文。参数</font><font FACE="Times New Roman" SIZE="3">lpszString</font><font SIZE="3">可以是一个</font><font FACE="Times New Roman" SIZE="3">CString</font><font SIZE="3">对象,或是一个指向字符串的指针。</p>
</font><font FACE="Times New Roman" SIZE="3"><p ALIGN="JUSTIFY">void SetSel( DWORD
dwSelection, BOOL bNoScroll = FALSE );<br>
void SetSel( int nStartChar, int nEndChar, BOOL bNoScroll = FALSE );<br>
CEdit</font><font SIZE="3">的成员函数,用来选择编辑框中的正文。参数</font><font FACE="Times New Roman" SIZE="3">dwSelection</font><font SIZE="3">的低位字说明了选择开始处的字符索引,高位字说明了选择结束处的字符索引。如果低位字为</font><font FACE="Times New Roman" SIZE="3">0</font><font SIZE="3">且高位字节为</font><font FACE="Times New Roman" SIZE="3">-1</font><font SIZE="3">,那么就选择所有的正文,如果低位字节为</font><font FACE="Times New Roman" SIZE="3">-1</font><font SIZE="3">,则取消所有的选择.参数</font><font FACE="Times New Roman" SIZE="3">bNoScroll</font><font SIZE="3">的值如果是</font><font FACE="Times New Roman" SIZE="3">FALSE</font><font SIZE="3">,则滚动插入符并使之可见,否则就不滚动.参数</font><font FACE="Times New Roman" SIZE="3">nStartChar</font><font SIZE="3">和</font><font FACE="Times New Roman" SIZE="3">nEndChar</font><font SIZE="3">的含义与参数</font><font FACE="Times New Roman" SIZE="3">dwSelection</font><font SIZE="3">的低位字和高位字相同.</p>
</font><font FACE="Times New Roman" SIZE="3"><p ALIGN="JUSTIFY">void ReplaceSel( LPCTSTR
lpszNewText, BOOL bCanUndo = FALSE );<br>
CEdit</font><font SIZE="3">的成员函数,用来将所选正文替换成指定的正文.参数</font><font FACE="Times New Roman" SIZE="3">lpszNewText</font><font SIZE="3">指向用来替换的字符串.参数</font><font FACE="Times New Roman" SIZE="3">bCanUndo</font><font SIZE="3">的值为</font><font FACE="Times New Roman" SIZE="3">TRUE</font><font SIZE="3">说明替换是否可以被撤消的.</font></p>
</blockquote>
</blockquote>
<p><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">在调用上述函数时,如果涉及的是一个
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -