MFC中CEdit类使用方法小结Word下载.docx
《MFC中CEdit类使用方法小结Word下载.docx》由会员分享,可在线阅读,更多相关《MFC中CEdit类使用方法小结Word下载.docx(26页珍藏版)》请在冰豆网上搜索。
编辑控件将要显示变动的文本。
在控件对文本格式化之后但在显示文本之前发送消息,
以便在必要时改变窗口尺寸。
ON_EN_VSCROLL
用户单击了编辑控件中的垂直滚动条,父窗口在屏幕更新之前被通知。
如果在对话框内创建CEdit对象,CEdit对象在用户关闭对话框时自动被删除。
如果使用对话框编辑器从对话资源中创建CEdit对象,CEdit对象在用户关闭对话框时自动被删除。
如果在窗口内创建CEdit对象,也需要删除它。
如果在栈上创建CEdit对象,它被自动删除。
如果使用new函数在堆上创建CEdit对象,在用户中止编辑控件时,必须对其调用delete来删除它。
如果在CEdit对象中分配存储空间,覆盖CEdit析构程序来处理分配情况。
关于CEdit的更多信息,请参阅联机文档“VisualC++程序员指南”中的“控件主题”。
#include<
afxwin.h>
请参阅
CWnd,CButton,CComboBox,CListBox,CScrollBar,CStatic,CDialog
CEdit类的成员
构造函数
CEdit
构造一个CEdit控件对象
Create
创建一个Windows编辑控件,并将其与CEdit对象连接CEdit
属性
CanUndo
决定一个编辑控件操作是否能够被撤销
GetLineCount
获得多行编辑控件中的行数GetModify决定编辑控件的内容是否被修改SetModify为编辑控
件设置或清除修改标记
GetRect
为编辑控件获取格式化的矩形
GetHandle
获得为当前多行编辑控件分配的内存的句柄
SetHandle
设置为多行编辑控件使用的本地内存的句柄
SetMargins
为CEdit设置左边和右边的空白边界
GetMargins
获得为CEdit设置左边和右边的空白边界
SetLimitText
设置CEdit能够容纳的文本的最大量
GetLimitText
获得CEdit能够容纳的文本的最大量
PosFromChar
获得指定字符索引的左上角的坐标
CharFromPos
获得最靠近指定位置的字符的行和字符索引
GetLine
从编辑控件中获得一行文本
GetPasswordChar
获得当用户输入文本时在编辑控件中显示的口令
GetFirstVisibleLeLine
决定在编辑控件中最顶部的可视的行
CEdit操作
EmptyUndoBuffer
重新设置(清除)编辑控件的撤销标记
FmtLines
设置在多行编辑控件中的软回车打开或关闭
LimitText
用户在输入文本时的文本长度限制
LineFromChar
获得包含指定字符索引的行的数目
LineIndex
获得在多行编辑控件中的某行的字符索引
LineLength
获得编辑控件中的行的长度
LineScroll
在多行编辑控件中滚动文本
ReplaceSel
用指定文本覆盖编辑控件中当前被选中的文本
SetPasswordChar
设置或清除当用户输入文本时在编辑控件中显示的口令
SetRect
设置多行编辑控件的带格式的矩形,并更新该控件
SetRectNP
设置多行编辑控件的带格式的矩形,而不必重新绘制
SetSel
在编辑控件中选定文本
SetTabStops
设置多行编辑控件的制表键停顿位
SetReadOnly
为编辑控件设置只读状态
CEdit剪贴板操作
Undo
撤销上一次的编辑控件操作
Clear
删除(清除)编辑控件中当前选中的文本
Copy
将编辑控件中的当前选中文本以CF_TEXT格式拷贝到剪贴板中
Cut
删除编辑控件中当前选中的文本,并将删除的文本以CF_TEXT格式拷贝到剪贴板中
Paste
在当前光标位置插入剪贴板内的文本。
只有在剪贴板数据为CF_TEXT格式时才进行插入
CEdit:
:
CanUndo
BOOLCanUndo()const;
返回值如果上一次编辑操作可以用Undo成员函数撤销,则返回非零值,否则为0。
说明调用该函数来决定上一次编辑操作是否可以撤销。
要了解更多信息,请参阅Win32文档中的EM_CANUNDO。
Undo,CEdit:
EmptyUndoBuffer
CEditCEdit();
说明构造一个CEdit对象。
使用Create来创建Windows编辑控件。
Create
CharFromPos
intCharFromPos(CPointpt)const;
返回值返回WORD低位的字符索引,以及WORD高位的行索引。
参数pt在客户区域中的CEdit对象的点的坐标。
说明调用该函数来获取基于0索引的行和最接近CEdit控件中指定点的字符索引。
注意
该成员函数在Windows95和WindowsNT4.0中有效。
要了解更多的信息,请参阅Win32文档中的EM_CHARFROMMOPS。
PosFromChar
Clear
voidClear();
说明调用该函数来删除(清除)编辑控件中当前选中的文本。
由Clear进行的操作可以通过调用Undo成员函数撤销。
要删除当前选定文本并将其拷贝到剪贴板上,调用Cut成员函数。
要了解更多的信息,请参阅Win32文档中的WM_CLEAR。
Copy,CEdit:
Cut,CEdit:
Paste
Copyv
oidCopy();
说明调用该函数将编辑控件中的当前选中文本以CF_TEXT格式拷贝到剪贴板中。
要了解更多的信息,请参阅Win32文档中的WM_COPY。
Clear,CEdit:
BOOLCreate(DWORDdwStyle,constRECT&
rect,CWnd*pParentWnd,UNITnID);
返回值初始化成功,则返回非零值,否则为0。
参数dwStyle指定编辑控件的风格。
可以组合使用控件的编辑风格。
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为新类执行所需要的初始化操作。
可以为编辑控件应用如下的风格:
WS_CHILD
总是采用
WS_VISIBLE
经常采用
WS_DISABLED
很少采用
WS_GROUP
组合控件
WS_TABSTOP
按制表键次序包含编辑控件
CEdit
Cut
voidCut();
说明调用该函数来删除(剪切)在编辑控件中的当前选定文本,并将其用CF_TEXT格式拷贝到剪贴板中。
由Cut执行的删除可以由Undo成员函数来撤销。
删除当前选定部分而不将已删除文本置于剪贴板,调用Clear成员函数。
要了解更多的信息,请参阅Win32文档中的WM_CUT。
Undo,CEdit:
VoidEmptyUndoBuffer();
说明调用此成员函数重新设置(清除)一个编辑控件中的撤消标记,使编辑控件不可撤消最近一次操作。
撤消标记在编辑控件的某个操作可以撤消时建立。
当调用SetWindows或SetHandleCwnd成员函数时,撤消标记自动被清除。
要了解更多的信息,请参阅Win32文档中的EM_EMPTYUNDOBUFFER。
CanUndo,CEdit:
SetHandle,CEdit:
Undo,CWnd:
SetWindowText
FmtLines
BOOL
FmtLines(BOOLbAddEOL);
返回值如果发生格式化,则返回非零值,否则为0。
参数
bAddEOl
指定是否要插入软断行符,值为True时插入软断行符,为False时去掉软断行符。
说明调用此成员函数用于设置在一个多行编辑控件中是否包含软断行符。
一个软断行符包含在断行行末插入两个回车和一个换行,这是因为一行可容纳的文字有限。
而一个硬断行符包含一个回车和一个断行。
以硬断行符结束的行不受FmtLines的影响。
仅在CEdit对象是一个多行编辑控件时Windows才响应此命令。
FmtLines仅影响GetHandle返回的缓冲区和WM_GETTEXT返回的文本,而对编辑控件中的显示无影响。
要了解更多信息,请参阅Win32文档中的EM_FMTLINES。
GetHandle,CWnd:
GetWindowText
GetFirstVisibleLine
intGetFirstVisibleLine()const;
返回值可视的最顶端行的行号(行号由0开始),对单行编辑控件来说,返回值为0。
说明调用此成员函数决定编辑控件中可视的最顶端行的行号。
要了解更多信息,请参阅Win32文档中的EM_GETFIRSTVISIBLELINE。
GetLine
GetHandle
HLOCALGetHandle()const;
返回值一个用于标识编辑控件内容的局部内存句柄。
如果发生错误,例如发送信息到一个单行编辑控件,则返回值为0。
说明调用此成员函数来获取一个多行编辑控件中当前分配的内存句柄。
此句柄是一个局部内存句柄,可被任何局部Windows存储函数作为一个参数来获得。
GetHandle仅仅被多行编辑控件处理。
在一个多行编辑控件的对话框中调用此成员函数时,对话框必须由DS_LOCAL-EDIT的样式标志集生成。
如果不是,虽然也可以得到一个非零的返回值,但此返回值不可被使用。
GetHandle不可在Windows95下运行。
如果在Windows95下调用,会返回NULL。
GetHandle可在WindowsNT3.51版及以上使用。
要了解有关的更多信息,请参阅Win32文档中的EM_GETHANDLE。
SetHandle
GetLimitText
UINTGetLimitText()const;
返回值对当前CEdit对象的文本大小限制,以字节计算。
说明调用此成员函数来获取该CEdit对象的文本大小限制,文本限制是此编辑控件可以接收的文本的最大长度(以字节计算)。
此成员函数仅在Windows95和WindowsNT4.0以上版本中可用。
要了解更多信息,请参阅Win32文档中的EM_GETLIMITTEXT。
SetLimitText,CEdit:
LimitText
intGetLine(intnIndex,LPCTSTRlpszBuffer)const;
intGetLine(intnIndex,LPCTSTRlpszBuffer,intnMaxLength)const;
返回值实际拷贝的字节数。
如果由nIndex指定的行号大于此编辑控件的行数,则返回值为0。
nIndex
指定从多行编辑控件中检索的行的行号,行号由0指定。
对单行编辑控件,此参数被忽略。
lpszBuffer指向获取此行备份的缓冲区。
缓冲区的第一个字必须指定能被拷贝到缓冲区的最大字节数。
nMaxLength指定能被拷贝到缓冲区的最大字节数,GetLine在调用Windows之前将此值放置到lpszBuffer的第一个字中。
说明调用此成员函数从编辑控件中获取文本的一行并将其放置到lpszBuffer缓冲区。
被拷贝的行不包括空终止符。
要了解更多信息,请参阅Win32文档中的EM_GETLINE。
GetLineCount
IntGetLineCount()const;
返回值
在多行编辑控件中的包含的一个整数总行数。
如果没有向控件输入任何文本,则返回值为1。
说明调用此成员函数获取一个多行编辑控件中的总行数。
此函数仅应用于多行编辑控件。
要了解更多信息,请参阅Win32文档中的EM_GETLINECOUNT。
GetMargins
DWORDGetMargins()const;
双字的低字位为左边距,高字位为右边距。
说明调用此成员函数获取编辑控件的左右边距,以像素表示。
要了解更多信息,请参阅Win32文档中的EM_GETMARGINS。
SetMargins
GetModify
GetModify()const
如果编辑控件的内容被改变,则返回值为非零,否则为0。
调用此成员函数测试编辑控件的内容是否被改变。
Windows有一个内部标记来表明编辑控件的内容是否被改变。
当编辑控件首次被创建时此标记被清除,在调用SetModify成员函数时也被清除。
要了解更多信息,请参阅Win32文档中的EM_GETMODIFY。
SetModify
GetPasswordChar
TCHARGetPasswordChar()const;
指定在用户输入字符处显示的字符。
如果无密码,则返回NULL。
调用此成员函数获取在用户输入密码时所显示的密码字符。
如果编辑控件是用ES_PASSWORD风格建立的,则缺省的密码字符为一个星号(*)。
要了解更多信息,请参阅Win32文档中的EM_GETPASSWORDCHAR。
SetPasswordChar
GetRect
voidGetRect(LPRECTlpRect)const;
lpRect
指向RECT结构以接收格式化矩形。
调用此成员函数获取一个编辑控件的格式化矩形。
此格式化矩形为文本的边界矩形,与编辑控件窗口的大小无关。
多行编辑控件的格式化矩形可以被SetRect和SetRectNP成员函数改变。
要了解更多信息,请参阅Win32文档中的EM_GETRECT。
SetRect,CEdit:
SetRectNP
GetSel
DWORDGetSel()const;
voidGetSel(int&
nStartChar,int&
nEndChar)const;
此版本返回一个双字,其低位字为起始位置,高位字为第一个未被选中的字符的位置。
nStartChar
指向当前选中部分的第一个字符位置,用整数表示。
nEndChar
指向第一个未被选中的字符的位置,用整数表示。
调用此成员函数获取一个编辑控件中当前被选中部分(如果有)的起始和结束位置,可用参数也可用返回值。
要了解更多信息,请参阅Win32文档中的EM_GETSEL。
SetSel
voidLimitText(intnChars=0);
nChars
指定用户可以输入的文本的长度(以字节枚举)。
如果参数为0,则长度设置为UINT_MAX个字节,这是缺省情况。
调用此成员函数限定用户可以向编辑控件中输入的文本的长度。
改变文本限定使用户能输入的文本受到限制,而对已在编辑控件中的文本没有影响,也不影响用CWnd中的SetWindowText成员函数能拷贝到编辑控件中的文本的长度。
如果用SetWindowText函数输入的文本超过调用LimitText函数所指定的值,则用户可以在编辑控件中删除任何文本,但文本限制会禁止用户将已存在的文本替换为新文本,直到删除当前所选文本而使文本大小降至限制以内。
在Win32(Windows95和WindowsNT)中,SetLimitText代替此函数。
要了解更多信息,请参阅Win32文档中的EM_LIMITTEXT。
CWnd:
SetWindowsText,CEdit:
GetLimitText,CEdit:
SelLimitText
LineFromChar
IntLineFromChar(intnIndex=-1)const;
返回由nIndex指定的字符索引的行号,此行号从0开始。
如果nIndex为-1,则返回所选部分第一个字符的行号,如果无选定部分,则返回当前行号。
nIndex包含编辑控件文本中所需字符的基于0的索引值,或者包含-1。
如果为-1则指定为当前行,即包含脱字符的行。
说明
调用此成员函数获取包含指定字符索引的行的行号,字符索引指编辑控件中从开始到指定字符的字符数。
此成员函数仅适用于多行编辑控件。
要了解更多信息,请参阅Win32文档中的EM_LINEFROMCHAR。
LineIndex
IntLineIndex(intnLine=-1)const;
nLine所指定的行的字符索引。
如果指定的行号大于编辑控件的行数,则返回-1。
nline
包含编辑控件文本中所需字符的索引值(此索引由0开始),如果为-1则指定为当前行,即包含脱字符的行。
调用此成员函数获取多行编辑控件中一行的字符索引,字符索引指从文本控件中文本开头到指定行的字符数。
要了解更多信息,请参阅Win32文档中的EM_LINEINDEX。
LineLength
IntLineLength(intnLine=-1)const;
当函数由多行编辑控件调用时,返回由nLine所指定的行的长度(以字节数表示);
当函数由单行编辑控件调用时,返回编辑控件中文本的长度(以字节数表示)。
nLine指定要获取长度的行的字符索引。
如果参数值为-1,表示当前行(即包含脱字符的行),不包括此行中被选中的部分文本的长度。
LineLength在单行编辑控件调用时是被忽略的。
调用此成员函数获取在编辑控件中一行的字符长度。
调用此成员函数在多行编辑控件中获取一个指定了行号的行的字符索引。
要了解更多信息,请参阅Win32文档中的EM_LINELENGTH。
LineScroll
voidLineScroll(intnLine,intnChars=0);
nLine
指定纵向滚动的行数。
指定水平滚动的字符数。
如果编辑控件使用ES_RIGHT或ES_CENTE