CEdit类(编辑类)成员函数及消息

CEdit类(编辑类)
CObject -> CCmdTarget -> CWnd -> CEdit
【说 明】CEdit类提供了Windows 编辑控件中的功能。编辑控件是一个子窗口矩形,用户可以向其中输入文本。 可以通过对话模板或直接从代码中创建一个编辑控件。在两种情形下,首先调用CEdit类的构造函数构造CEdit类的对象,再调用成员函数Create创建Windows 编辑控件并将其与CEdit类的对象连接。构造在CEdit的派生类中可以单步实现。为派生类编写构造函数并从构造函数中调用成员函数Create。
CEdit类从CWnd类继承了重要的功能,要在CEdit类的对象中设置或获取文本,使用CWnd类的成员函数SetWindowText和GetWindowText,可以设置和得到编辑控件的全部内容,即使它是一个多行控件。如果编辑控件是多行的,使用CEdit类的成员函数GetLine,GetSel,GetSel和ReplaceSel来获取和写入控件的部分文本。
如果要处理编辑控件发往其父类(通常是一个CDialog类的派生类)的通知消息,则向父类中为每一消息添加一个消息映射入口和消息处理成员函数。
各消息映射入口可采用如下形式:ON_Notification(id, memberFxn)
其中id指定了发送通知的编辑控件的子窗口ID,memberFxn为你写好的处理通知的父成员函数的名字。
父函数形式如下:
afx_msg void memberFxn();
下面是一组可能的消息映射入口,以及在何种情况下向父类发送的描述:

ON_EN_CHANGE
用户采取的行动可能会改变编辑控件的文本。与EN_UPDATE通知消息不同,该通知是在Windows 更新显示之后发送的。

ON_EN_ERRSPACE
编辑控件不能为特定请求分配足够的空间。

ON_EN_HSCROLL
用户单击了编辑控件中的水平滚动条,父窗口在屏幕更新之前被通知。

ON_EN_KILLFOCUS
编辑控件失去输入焦点。

ON_EN_MAXTEXT
当前输入超过了为编辑控件指定的数目,并作截尾处理。当编辑控件不具有ON_EN_HSCROLL风格且要输入的字符会超过编辑控件的宽度时,发送消息。当编辑控件不具有ON_EN_VSCROLL风格且要输入的字符会超过编辑控件的高度时,也会发送消息。

ON_EN_SETFOCUS
编辑控件获得焦点。

ON_EN_UPDATE
编辑控件将要显示变动的文本。在控件对文本格式化之后但在显示文本之前发送消息,以便在必要时改变窗口尺寸。

ON_EN_VSCROLL
用户单击了编辑控件中的垂直滚动条,父窗口在屏幕更新之前被通知。 如果在对话框内创建CEdit类的对象,CEdit类的对象在用户关闭对话框时自动被删除。 如果使用对话框编辑器从对话资源中创建CEdit类的对象,CEdit类的对象在用户关闭对话框时自动被删除。
如果在窗口内创建CEdit类的对象,也需要删除它。如果在栈上创建CEdit类的对象,它被自动删除。如果使用new函数在堆上创建CEdit类的对象,在用户中止编辑控件时,必须对其调用delete来删除它。如果在CEdit类的对象中分配存储空间,则需要重载CEdit析构函数来处理分配情况。【库 名】<afxwin.h>【成员函数
】(1)BOOL CanUndo() const;【返回值】如果上一次编辑操作可以用Undo成员函数撤销,则返回非零值,否则为0。【注 释】调用该函数来决定上一次编辑操作是否可以撤销。
(2)CEdit();
【注 释】构造一个CEdit类的对象。使用成员函数Create来创建Windows 编辑控件
(3)int CharFromPos(CPoint pt) const;【返回值】返回WORD低位的字符索引,以及WORD高位的行索引。【参 数】pt 在客户区域中的CEdit类的对象的点的坐标。【注 释】调用该函数来获取基于0索引的行和最接近CEdit控件中指定点的字符索引。注意,该成员函数在Windows 95和Windows NT 4.0中有效
。
(4)void Clear();【注 释】调用该函数来删除(清除)编辑控件中当前选中的文本。由成员函数Clear进行的操作可以通过调用成员函数Undo撤销。要删除当前选定文本并将其拷贝到剪贴板上,调用成员函数Cut
。(5)void Copy();【注 释】调用该函数将编辑控件中的当前选中文本以CF_TEXT格式拷贝到剪贴板中
。(6)BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);【返回值】初始化成功,则返回非零值,否则为0。【参 数】dwStyle 指定编辑控件的风格。可以是窗口风格和控件的编辑风格的组合。可以使用的编辑风格如下:

ES_AUTOHSCROLL
当用户在行的末尾键入了一个字符时自动将文本向右滚动10个字符。当用户按下ENTER键时,控件把所有文本滚动回位置0。

ES_AUTOVSCROLL
当用户在最后一行按下ENTER键时自动将文本镶上滚动一页。

ES_CENTER
在一个多行编辑控件中使文本水平居中显示。

ES_LEFT
使文本作对齐。

ES_LOWERCASE
在字符输入到编辑器控件时,转换所有的字符成为小写。

ES_MULTILINE
指定编辑控件为多行风格(缺省为单行风格)。
对于在对话框中的多行编辑控件,按下ENTER键将执行按下对话框中缺省按钮的操作,如果希望换行则必须设置ES_WANTRETURN风格。
当多行编辑控件的父窗口不是一个对话框类的对象,而且指定了ES_AUTOVSCROLL风格,则编辑控件尽可能多地显示行并且在用户按下ENTER键时垂直滚动。若未给出ES_AUTOVSCROLL风格,则编辑控件尽可能多地显示行,若当没有再可显示的行时用户按下ENTER键,则发出“嘟嘟”声。
若指定了ES_AUTOHSCROLL风格,则当插入字符超出控件的右边界时,该或行编辑控件自动水平滚动。要开始一个新行,用户必须按ENTER键。若未给出ES_AUTOHSCROLL风格,则控件根据需要自动将插入字符卷至下一行的开始处;若按下了ENTER键,仍将重起一行。卷行的位置由窗口的尺寸决定。若窗口的尺寸发生了变化,则卷行的位置也发生变化,且文本将被重新显示。
多行编辑控件可拥有滚动条。带滚动条的编辑控件处理其自己的滚动消息。不带滚动条的编辑控件按如上方法处理由父窗口发送的消息。

ES_NOHIDESEL
通常,编辑控件在失去输入焦点时编辑控件隐藏选中的文字并且当编辑控件重新获得输入焦点时反转选中的文字。指定本风格将使被选中的文本不被隐藏。

ES_NUMBER
被编辑的文本必须为数字,否则将不被处理。

ES_OEMCONVERT
在编辑控件中输入的文本被从ANSI字符集转换到OEM字符集然后又转换回ANSI字符集。这样就保证了应用程序调用Windows API函数AnsiToOem把编辑控件中的ANSI字符串转换成OEM字符时字符被正确转换。此风格对含有文件名的编辑控件非常有用。

ES_PASSWORD
当向编辑控件中键入字符时,将所有字符显示成(*)。应用程序可使用成员函数SetPasswordChar来修改所显示的字符。此风格仅在编辑控件为单行时有效,一旦编辑控件设置了ES_MULTILINE风格则此风格无效。

ES_READONLY
防止用户输入或者编辑控件中的文本。

ES_RIGHT
使文本右对齐。

ES_UPPERCASE
在字符输入到编辑器控件时,转换所有的字符成为大写。

ES_WANTRETURN
对于在对话框中建立的多行文本编辑控件,当按下ENTER键时,编辑控件将消息发送给对话框,对话框将执行缺省操作OnOK,关闭对话框。在设置了此风格后,编辑控件就不会将消息发送给对话框了。此风格对于在框架窗口中建立的编辑控件无效。对于在对话框中建立的单行文本编辑控件也无效。
rect 指定控件的尺寸和位置。可以是RECT结构或CRect对象。pParentWnd 指定编辑控件的父窗口(通常使用CDialog类的对象)。其值不能为NULL。nID 指定编辑控件的ID。
【注 释】构造CEdit类的对象分两步。首先调用CEdit类的构造函数,再调用成员函数Create,这样就创建了一个Windows 编辑控件,并将其与CEdit类的对象连接。当执行成员函数Create时,Windows 发送WM_NCCREATE ,WM_NCCALCSIZE ,WM_CREATE 和WM_GETMINMAXINFO 消息到编辑控件。缺省地,这些消息由CWnd 基类中的成员函数OnNcCalcSize,OnCreate,OnNcCreate和OnGetMinMaxInfo处理。要扩展缺省的消息处理,先从CEdit类派生一个类,为新类添加消息映射并重载上述消息处理成员函数。例如,重载成员函数OnCreate为新类执行所需要的初始化操作。
(7)void Cut();【注 释】调用该函数来删除(剪切)在编辑控件中的当前选定文本,并将其用CF_TEXT格式拷贝到剪贴板中。由成员函数Cut执行的删除可以由成员函数Undo来撤销。删除当前选定部分而不将已删除文本置于剪贴板,调用成员函数Clear。
(8)void EmptyUndoBuffer();【注 释】调用此成员函数重新设置(清除)一个编辑控件中的撤消标记,使编辑控件不可撤消最近一次操作。撤消标记在编辑控件的某个操作可以撤消时建立。当调用成员函数SetHandle或基类CWnd类的成员函数SetWindowsText时,撤消标记自动被清除。
(9)BOOL FmtLines(BOOL bAddEOL);【返回值】如果发生格式化,则返回非零值,否则为0。【参 数】bAddEOL 指定是否要插入软断行符,值为True时插入软断行符,为False时去掉软断行符。【注 释】调用此成员函数用于设置在一个多行编辑控件中是否包含软断行符。一个软断行符包含在断行行末插入两个回车和一个换行,这是因为一行可容纳的文字有限。而一个硬断行符包含一个回车和一个断行。以硬断行符结束的行不受本成员函数的影响。仅在CEdit类的对象是一个多行编辑控件时Windows才响应此命令。本成员函数仅影响成员函数GetHandle返回的缓冲区和消息WM_GETTEXT返回的文本,而对编辑控件中的显示无影响。
(10)int GetFirstVisibleLine() const;【返回值】可视的最顶端行的行号(行号由0开始),对单行编辑控件来说,返回值为0。【注 释】调用此成员函数决定编辑控件中可视的最顶端行的行号。
(11)HLOCAL GetHandle() const;【返回值】一个用于标识多行编辑控件内容的局部内存句柄。如果发生错误,例如检取信息的编辑控件为单行,则返回值为0。【注 释】调用此成员函数来获取一个多行编辑控件中当前分配的内存句柄。此句柄是一个局部内存句柄,可被任何局部Windows存储函数作为一个参数来获得。此成员函数仅仅被多行编辑控件处理。在一个多行编辑控件的对话框中调用此成员函数时,对话框必须设置风格DS_LOCALEDIT。如果不是,虽然也可以得到一个非零的返回值,但此返回值不可被使用。注意 此成员函数不可在Windows 95下运行。如果在Windows 95下调用,会返回NULL。此成员函数可在Windows NT 3.51版及以上使用。
(12)UINT GetLimitText() const;【返回值】对当前CEdit类的对象的文本大小限制,以字节计算。【注 释】调用此成员函数来获取该CEdit对象的文本大小限制,文本限制是此编辑控件可以接收的文本的最大长度(以字节计算)。注意 此成员函数仅在Windows 95和Windows NT 4.0以上版本中可用。
(13)int GetLine(int nIndex, LPTSTR lpszBuffer) const;
int GetLine(int nIndex, LPTSTR lpszBuffer, int nMaxLength) const;【返回值】实际拷贝的字节数。如果由参数nIndex指定的行号大于此编辑控件的行数,则返回值为0。【参 数】nIndex 指定从多行编辑控件中检索的行的行号,行号由0指定。对单行编辑控件,此参数被忽略。lpszBuffer 指向获取此行备份的缓冲区。缓冲区的第一个字必须指定能被拷贝到缓冲区的最大字节数。nMaxLength 指定能被拷贝到缓冲区的最大字节数,本成员函数在调用Windows之前将此值放置到参数lpszBuffer的第一个字中。【注 释】调用此成员函数从编辑控件中获取文本的一行并将其放置到参数lpszBuffer缓冲区。被拷贝的行不包括空终止符。
(14)int GetLineCount() const;
【返回值】在多行编辑控件中的包含的一个整数总行数。如果没有向控件输入任何文本,则返回值为-1。【注 释】调用此成员函数获取一个多行编辑控件中的总行数。此函数仅应用于多行编辑控件。
(15)DWORD GetMargins() const;
【返回值】双字的低字位为左边距,高字位为右边距。【注 释】调用此成员函数获取由成员函数SetMargins设置的编辑控件的左右边距,以像素表示。注意,此成员函数仅在Windows 95和Windows NT 4.0以上版本中可用。
(16)BOOL GetModify() const;
【返回值】如果编辑控件的内容被改变,则返回值为非零,否则为0。【注 释】调用此成员函数测试编辑控件的内容是否被改变。Windows有一个内部标记来表明编辑控件的内容是否被改变。当编辑控件首次被创建时此标记被清除,在调用成员函数SetModify时也被清除。
(17)TCHAR GetPasswordChar() const;
【返回值】指定在用户输入字符处显示的字符。如果无密码,则返回NULL。【注 释】调用此成员函数获取在用户输入密码时所显示的密码字符。如果编辑控件是用ES_PASSWORD风格建立的,则缺省的密码字符为一个星号(*)。
(18)void GetRect(LPRECT lpRect) const;【参 数】lpRect 指向一个RECT结构类型的数据以接收格式化矩形。【注 释】调用此成员函数获取一个编辑控件的格式化矩形。此格式化矩形为文本的边界矩形,与编辑控件窗口的大小无关。多行编辑控件的格式化矩形可以被成员函数SetRect和SetRectNP改变。
(19)DWORD GetSel() const;
void GetSel(int& nStartChar, int& nEndChar) const;
【返回值】此版本返回一个双字,其低位字为起始位置,高位字为被选中字符串后第一个未被选中的字符的位置。【参 数】nStartChar 指向当前选中部分的第一个字符位置,用整数表示。nEndChar 指向被选中字符串后第一个未被选中的字符的位置,用整数表示。【注 释】调用此成员函数获取一个编辑控件中当前被选中部分(如果有)的起始和结束位置,可用参数也可用返回值。注意,当选中编辑控件的最后一个字符时高位字或者第二个参数的值为最后一个字符的索引值加一。当选中的文本不再同一行时,硬断行符也将占据两个索引值,而软换行符将占据3个索引值。每个汉字将占据两个索引值。
(20)void LimitText(int nChar = 0) const;
【参 数】nChar 指定用户可以输入的文本的长度(以字节枚举)。如果参数为0,则长度设置为UINT_MAX个字节,这是缺省情况。UINT_MAX的值为0xffffffff。【注 释】调用此成员函数限定用户可以向编辑控件中输入的文本的长度。改变文本限定使用户能输入的文本受到限制,而对已在编辑控件中的文本没有影响,也不影响用CWnd类中的成员函数SetWindowText能拷贝到编辑控件中的文本的长度。如果用成员函数SetWindowText输入的文本超过调用成员函数LimitText所指定的值,则用户可以在编辑控件中删除任何文本,但文本限制会禁止用户将已存在的文本替换为新文本,直到删除当前所选文本而使文本大小降至限制以内。注意,在Win32(Windows95和Windows NT)中,成员函数SetLimitText可以代替此函数。

(21)int LineFromChar(int nIndex = -1) const;
【返回值】返回由nIndex指定的字符索引的行号,此行号从0开始。如果nIndex为-1,则返回所选部分第一个字符的行号,如果无选定部分,则返回当前行号。【参 数】nIndex 包含编辑控件文本中所需字符的基于0的索引值,或者包含-1。如果为-1则指定为当前行,即包含脱字符的行。【注 释】调用此成员函数获取包含指定字符索引的行的行号,字符索引指编辑控件中从开始到指定字符的字符数。此成员函数仅适用于多行编辑控件。
(22)int LineIndex(int nLine = -1) const;
【返回值】nLine所指定的行的第一个字符的索引值。如果指定的行号大于编辑控件的行数,则返回-1。【参 数】nLine 包含编辑控件文本中所需字符的行索引值(此索引由0开始),如果为-1则指定为当前行,即包含脱字符的行。【注 释】调用此成员函数获取多行编辑控件中一行的第一个字符的索引值,字符的索引值指从文本控件中文本开头到指定行的字符数。此成员函数仅适用于多行编辑控件。
(23)int LineLength(int nLine = -1) const;
【返回值】当成员函数由多行编辑控件调用时,返回由nLine所指定的字符索引值所在行的长度(以字节数表示);当成员函数由单行编辑控件调用时,返回编辑控件中文本的长度(以字节数表示)。【参 数】nLine 指定要获取长度的行中某一的字符的索引值。如果参数值为-1,表示当前行(即包含脱字符的行),不包括此行中被选中的部分文本的长度。成员函数LineLength在单行编辑控件调用时本参数被忽略。【注 释】调用此成员函数获取在编辑控件中一行的字符长度。
(24)void LineScroll(int nLines, int nChars = 0);
【参 数】nLine 指定纵向滚动的行数。nChars 指定水平滚动的字符数。如果编辑控件使用ES_RIGHT或ES_CENTER风格,此值无效。【注 释】调用此成员函数滚动多行编辑控件的文本。此成员函数仅用于多行编辑控件。编辑控件的纵向滚动不能超过该文本的最后一行,如果当前行号加上由nLines指定的行数超过编辑控件中的总行数,则它的值被调整而使得文本的最后一行滚动达到编辑控件窗口的顶端。此函数可以水平滚动经过每行的最后一个字符。
(25)void Paste() const;
【注 释】调用此成员函数将剪贴板上的数据插入CEdit的插入点,仅在剪贴板上的数据具有CF_TEXT格式时数据才可以被插入。
(26)CPoint PosFromChar(UINT nChar) const;
【返回值】由nChar指定的字符的左上角坐标。【参 数】nChar 指定字符的索引值(从0开始)。【注 释】调用此成员函数获取此CEdit类的对象中一个指定字符的位置(左上角),此字符由它的索引值给定。如果nChar大于此CEdit对象中最后一个字符的索引,则(-1,-1)。注意,此成员函数仅适用于以Windows 95和Windows NT开始的版本。
(27)void ReplaceSel(LPCTSTR lpszNewText, BOOL bCanUndo = FALSE);
【参 数】lpszNewText 指向一个以空终止的替换字符串。bCanUndo 如果指定此替代可以被撤消,则将此参数设置为TRUE。缺省值为FALSE。【注 释】调用此成员函数将编辑控件中的当前选定部分替换为由参数lpszNewText指定的文本。仅替换编辑控件中文本的一部分。如果要替换全部文本,请使用基类CWnd类的成员函数SetWindowText。如果当前未选定文本,则将文本插入当前光标位置。
(28)void SetHandle(HLOCAL hBuffer);
【参 数】hBuffer 包含一个指向局部内存的句柄。此句柄必须已由Windows API函数LocalAlloc使用 LMEM_MOVEABLE标记创建。该存储区被认为包含一个带空终止符的字符串,如果不是这样,则缓冲区的第一个字符应被设置为0。【注 释】调用此成员函数设置一个可被多行编辑控件使用的局部内存句柄。编辑控件便可以使用此缓冲区来存储当前显示的文本,而不必分配自己的缓冲区。此函数仅对多行编辑控件有效。当应用设置一个新的存储句柄时,应使用GetHandle成员函数获取一个当前缓冲内存句柄,并使用Windows API函数LocalFree释放此缓冲区。此函数清除撤消缓冲区(CanUndo成员函数返回0)和内部修改标记(GetModify成员函数返回0),编辑控件被重新设置。仅在使用DS_LOCALEDIT风格标志设置构造一个多行编辑控件对话框后,才可以在此对话框中使用此成员函数。注意,此函数不可在Windows 95中使用,如果在Windows 95中使用成员函数GetHandle会返回NULL。此函数仅在Windows NT 3.51以上的版本中使用。
(29)void SetLimitText(UINT nMax);
【参 数】nMax 新的文本限制,以字节计算。【注 释】调用此成员函数设置编辑控件中的文本的长度限制。此限制是编辑控件可以接收的以字节形式表示的文本大小。改变文本限定仅使用户能输入的文本受到限制,而对已在编辑控件中的文本没有影响,也不影响用基类CWnd类的成员函数SetWindowText能拷贝到编辑控件中的文本的长度。如果用基类CWnd类的成员函数SetWindowText输入的文本超过调用成员函数LimitText函数所指定的值,则用户可以在编辑控件中删除任何文本,但文本限制会禁止用户将已存在的文本替换为新文本,直到删除当前所选文本而使文本大小降至限制以内。在Win32中,成员函数LimitText可以代替此函数。
(30)void SetMargins(UINT nLeft, UINT nRight);
【参 数】nLeft 以像素表示的新的文本左边距宽度。nRight 以像素表示的新的文本右边距宽度。【注 释】调用此成员函数设置编辑控件的左右边距。注意,此成员函数仅在Windows 95和Windows NT 4.0以上版本中可用。
(31)void SetModify(BOOL bModified = TRUE);
【参 数】bModified TRUE表示文本被改变了,FALSE表示没有改变,缺省情况下设定了改变标志。【注 释】调用此成员函数设置或清除编辑控件的改变标志。改变标记表明文本是否被改变。当用户改变文本时,此标志被自动设置,它的值在调用成员函数GetModify时获取。
(32)void SetPasswordChar(TCHAR ch);
【参 数】ch 指定在用户输入字符处显示的字符。如果值为0,则显示输入的实际字符。【注 释】调用本成员函数在编辑控件中设置或清除用户输入文本时所显示的密码字符。此成员函数对多行编辑控件无效。当调用本成员函数时,CEdit将用ch所指定的字符替代所有可视的字符。如果编辑控件是用ES_PASSWORD风格建立的,则缺省的密码字符被设置为一个星号(*)。此风格在本成员函数以ch = 0调用时删除。注意,本成员函数没有刷新功能,也就是说,在调用本成员函数之后应调用基类CWnd类的成员函数Invalidate来刷新当前视,才会得到正确的显示结果。
(33)BOOL SetReadOnly(BOOL bReadOnly = TRUE);
【返回值】操作成功,则返回非零值;当发生错误时为0。【参 数】bReadOnly 指定设置还是去掉编辑控件的只读状态。如果为TRUE值,则设置为只读状态;如果为FALSE值,则设置为可读写状态。【注 释】调用此成员函数设置编辑控件的只读状态。当前的只读状态可由基类CWnd类的成员函数 GetStyle的返回值的ES_READONLY标志测出。
(34)void SetRect(LPCRECT lpRect);
【参 数】lpRect 指向一个RECT结构类型数据或CRect对象的指针,指定格式化矩形的新的尺寸。【注 释】调用此成员函数用指定坐标设置一个编辑控件的矩形的尺寸。此成员函数仅对多行编辑控件有效。使用成员函数SetRect设置一个对多行编辑控件的格式化矩形。此格式化矩形为文本的边界矩形,与编辑控件窗口的大小无关。当编辑控件首次被创建时,格式化矩形与用户的编辑控件窗口区一样。使用成员函数SetRect后,应用程序可以使格式化矩形大于或小于编辑控件窗口。如果编辑控件没有滚动条,在格式化矩形大于窗口时,文本将被剪切而不是被覆盖。如果编辑控件包括一个边界,则格式化矩形的大小将因边界的存在而变小。如果用成员函数GetRect的返回值来调整矩形的大小,在传递矩形之前应将矩形坐标中的top、left值减1,bottom、right值加1,以此去掉边界的影响。调用成员函数SetRect时,编辑控件的文本格式和显示方式将被重新设置。
(35)void SetRectNP(LPCRECT lpRect);
【参 数】lpRect 指向一个RECT结构类型数据或CRect对象的指针,指定格式化矩形的新的大小。【注 释】调用此成员函数用一个多行编辑控件设置格式化矩形。此格式化矩形为文本的边界矩形,与编辑控件窗口的大小无关。除了编辑控件窗口不被重新设置外,此成员函数与成员函数SetRect一致。当编辑控件首次被创建时格式化矩形与用户的编辑控件窗口区一样。使用此成员函数后,应用程序可以使格式化矩形大于或小于编辑控件窗口。如果编辑控件没有滚动栏,在格式化矩形大于窗口时,文本将被剪切而不是被覆盖。此成员函数仅对多行编辑控件有效。注意,成员函数SetRect相当于在调用此成员函数后再调用基类CWnd类的成员函数Invaliadte。
(36)void SetSel(DWORD dwSelection, BOOL bNoScroll = FALSE);
void SetSel(int nStartChar, int nEndChar, BOOL bNoScroll = FALSE);【参 数】dwSelection 低位字指定被选中部分的第一个字符位置,高位字指定为被选中字符串后第一个未被选中的字符的位置。如果低位为0,高位为-1,则编辑控件中的全部文本被选中;如果低位字为-1,则任何当前选定内容被去掉选定状态。bNoScroll 指示是否显示脱字符是滚动可见的。如果值为FALSE,则显示,TRUE不显示。nStartChar 指出被选中部分的第一个字符位置。如果nStartChar = 0且nEndChar = -1,则编辑控件的文本被全选;如果nStartChar = -1,则任何当前选定内容被去掉选定状态。nEndChar 指定为被选中字符串后第一个未被选中的字符的位置。【注 释】调用此成员函数在一个编辑控件中选择一定范围的字符。
(37)void SetTabStops();
BOOL SetTabStops(const int& cxEachStop); BOOL SetTabStops(int nTabStops, LPINT rgTabStops);【返回值】如果制表键被设置,则返回非零值,否则为0。【参 数】cxEachStop 指定制表键宽度,本参数的单位为1/4个字符的宽度,本参数的设置值应大于8,否则将无法得到正确的显示。由本参数指定的宽度,包括制表键前一个字符和后一个字符,也就是说,当设置值为9时,由于制表键前一个字符和后一个字符各占了4各单位,实际显示为空白的制表键宽度只有1各单位的宽度。nTabStops 指定包含在参数rgTabStops中无符号整型数的个数。此参数必须大于1。rgTabStops 是一个指向无符号整数数组的指针,此数组指定一组制表键宽度,当nTabStops为1时本参数指向一个无符号整型数,该整型数将作为编辑控件中所有制表键的宽度。一个制表键单位是一个水平或垂直距离,一个水平制表键单位等于宽度相同的当前对话基本单位的四分之一,一个垂直制表键单位等于高度相同的当前对话基本单位的八分之一,对话基本单位是基于当前系统字体的高度和宽度计算的,Windows API函数GetDialogBaseUnits以像素形式返回当前对话基本单位。【注 释】调用此成员函数在一个多行编辑控件中设置制表键的宽度。当文本被拷贝到多行编辑控件时,文本中的任何制表键之间均会产生一段空白。缺省的制表键宽度为32个制表键单位,可不带参数调用此成员函数。此成员函数仅适用于多行编辑控件。此成员函数不会自动重画编辑窗口。如果要改变已在文本控件中的文本的制表键停止,应调用基类CWnd类的成员函数Invalidate来重画编辑窗口。
(38)BOOL Undo();
【返回值】对于单行编辑控件总是返回非零值。对于多行编辑控件,如果操作成功,则返回非零值,失败则返回0。【注 释】调用此成员函数撤消编辑控件的最后一次操作。撤销操作也可以被撤消。例如,可以第一次调用撤销来保存被删文本,在没有别的操作发生时,可以再次调用撤消操作将文本删除。


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值