MFC中CEdit类使用方法小结.doc_第1页
MFC中CEdit类使用方法小结.doc_第2页
MFC中CEdit类使用方法小结.doc_第3页
MFC中CEdit类使用方法小结.doc_第4页
MFC中CEdit类使用方法小结.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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析构程序来处理分配情况。关于CEdit的更多信息,请参阅联机文档“Visual C+程序员指南”中的“控件主题”。#include请参阅CWnd,CButton,CComboBox,CListBox,CScrollBar,CStatic,CDialogCEdit类的成员构造函数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:CanUndoBOOL CanUndo() const;返回值如果上一次编辑操作可以用Undo成员函数撤销,则返回非零值,否则为0。说明调用该函数来决定上一次编辑操作是否可以撤销。要了解更多信息,请参阅Win 32文档中的EM_CANUNDO 。请参阅CEdit:Undo,CEdit:EmptyUndoBufferCEdit:CEditCEdit();说明构造一个CEdit对象。使用Create来创建Windows 编辑控件。请参阅CEdit:CreateCEdit:CharFromPosint CharFromPos(CPoint pt) const;返回值返回WORD低位的字符索引,以及WORD高位的行索引。参数pt在客户区域中的CEdit对象的点的坐标。说明调用该函数来获取基于0索引的行和最接近CEdit控件中指定点的字符索引。注意该成员函数在Windows 95和Windows NT 4.0中有效。要了解更多的信息,请参阅Win 32文档中的EM_CHARFROMMOPS。请参阅CEdit:PosFromCharCEdit:Clearvoid Clear();说明调用该函数来删除(清除)编辑控件中当前选中的文本。由Clear进行的操作可以通过调用Undo成员函数撤销。要删除当前选定文本并将其拷贝到剪贴板上,调用Cut成员函数。要了解更多的信息,请参阅Win 32文档中的WM_CLEAR。请参阅CEdit:Undo,CEdit:Copy,CEdit:Cut,CEdit:PasteCEdit:Copyvoid Copy();说明调用该函数将编辑控件中的当前选中文本以CF_TEXT格式拷贝到剪贴板中。要了解更多的信息,请参阅Win 32文档中的WM_COPY。请参阅CEdit:Clear,CEdit:Cut,CEdit:PasteCEdit:CreateBOOL Create(DWORD dwStyle,const RECT&rect,CWnd*pParentWnd,UNIT nID);返回值初始化成功,则返回非零值,否则为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:CEditCEdit:Cutvoid Cut();说明调用该函数来删除(剪切)在编辑控件中的当前选定文本,并将其用CF_TEXT格式拷贝到剪贴板中。由Cut执行的删除可以由Undo成员函数来撤销。删除当前选定部分而不将已删除文本置于剪贴板,调用Clear成员函数。要了解更多的信息,请参阅Win 32文档中的WM_CUT。请参阅CEdit:Undo ,CEdit:Clear,CEdit:Copy,CEdit:PasteCEdit:EmptyUndoBufferVoid EmptyUndoBuffer();说明调用此成员函数重新设置(清除)一个编辑控件中的撤消标记,使编辑控件不可撤消最近一次操作。撤消标记在编辑控件的某个操作可以撤消时建立。当调用SetWindows 或SetHandle Cwnd成员函数时,撤消标记自动被清除。要了解更多的信息,请参阅Win32文档中的EM_EMPTYUNDOBUFFER。请参阅CEdit:CanUndo, CEdit:SetHandle, CEdit:Undo,CWnd:SetWindowTextCEdit:FmtLinesBOOLFmtLines(BOOL bAddEOL);返回值如果发生格式化,则返回非零值,否则为0。参数bAddEOl指定是否要插入软断行符,值为True时插入软断行符,为False时去掉软断行符。说明调用此成员函数用于设置在一个多行编辑控件中是否包含软断行符。一个软断行符包含在断行行末插入两个回车和一个换行,这是因为一行可容纳的文字有限。而一个硬断行符包含一个回车和一个断行。以硬断行符结束的行不受FmtLines的影响。仅在CEdit对象是一个多行编辑控件时Windows才响应此命令。FmtLines仅影响GetHandle返回的缓冲区和WM_GETTEXT返回的文本,而对编辑控件中的显示无影响。要了解更多信息,请参阅Win32文档中的EM_FMTLINES。请参阅CEdit:GetHandle, CWnd:GetWindowTextCEdit:GetFirstVisibleLineint GetFirstVisibleLine()const;返回值可视的最顶端行的行号(行号由0开始),对单行编辑控件来说,返回值为0。说明调用此成员函数决定编辑控件中可视的最顶端行的行号。要了解更多信息,请参阅Win32文档中的EM_GETFIRSTVISIBLELINE。请参阅CEdit:GetLineCEdit:GetHandleHLOCAL GetHandle() const;返回值一个用于标识编辑控件内容的局部内存句柄。如果发生错误,例如发送信息到一个单行编辑控件,则返回值为0。说明调用此成员函数来获取一个多行编辑控件中当前分配的内存句柄。此句柄是一个局部内存句柄,可被任何局部Windows存储函数作为一个参数来获得。GetHandle仅仅被多行编辑控件处理。在一个多行编辑控件的对话框中调用此成员函数时,对话框必须由DS_LOCAL-EDIT的样式标志集生成。如果不是,虽然也可以得到一个非零的返回值,但此返回值不可被使用。注意GetHandle不可在Windows 95下运行。如果在Windows 95下调用,会返回NULL。GetHandle可在Windows NT 3.51版及以上使用。要了解有关的更多信息,请参阅Win32文档中的EM_GETHANDLE。请参阅CEdit:SetHandleCEdit:GetLimitTextUINT GetLimitText() const;返回值对当前CEdit对象的文本大小限制,以字节计算。说明调用此成员函数来获取该CEdit对象的文本大小限制,文本限制是此编辑控件可以接收的文本的最大长度(以字节计算)。注意此成员函数仅在Windows 95和Windows NT 4.0以上版本中可用。要了解更多信息,请参阅Win32文档中的EM_GETLIMITTEXT。请参阅CEdit:SetLimitText, CEdit:LimitTextCEdit:GetLineint GetLine(int nIndex, LPCTSTR lpszBuffer) const;int GetLine(int nIndex, LPCTSTR lpszBuffer, int nMaxLength) const;返回值实际拷贝的字节数。如果由nIndex指定的行号大于此编辑控件的行数,则返回值为0。参数nIndex指定从多行编辑控件中检索的行的行号,行号由0指定。对单行编辑控件,此参数被忽略。lpszBuffer指向获取此行备份的缓冲区。缓冲区的第一个字必须指定能被拷贝到缓冲区的最大字节数。nMaxLength指定能被拷贝到缓冲区的最大字节数,GetLine在调用Windows之前将此值放置到lpszBuffer的第一个字中。说明调用此成员函数从编辑控件中获取文本的一行并将其放置到lpszBuffer缓冲区。被拷贝的行不包括空终止符。要了解更多信息,请参阅Win32文档中的EM_GETLINE。CEdit:GetLineCountInt GetLineCount()const;返回值在多行编辑控件中的包含的一个整数总行数。如果没有向控件输入任何文本,则返回值为1。说明调用此成员函数获取一个多行编辑控件中的总行数。此函数仅应用于多行编辑控件。要了解更多信息,请参阅Win32文档中的EM_GETLINECOUNT。CEdit:GetMarginsDWORD GetMargins()const;返回值双字的低字位为左边距,高字位为右边距。说明调用此成员函数获取编辑控件的左右边距,以像素表示。注意此成员函数仅在Windows 95和Windows NT 4.0以上版本中可用。要了解更多信息,请参阅Win32文档中的EM_GETMARGINS。请参阅CEdit:SetMarginsCEdit:GetModifyBOOLGetModify()const返回值如果编辑控件的内容被改变,则返回值为非零,否则为0。说明调用此成员函数测试编辑控件的内容是否被改变。Windows有一个内部标记来表明编辑控件的内容是否被改变。当编辑控件首次被创建时此标记被清除,在调用SetModify成员函数时也被清除。要了解更多信息,请参阅Win32文档中的EM_GETMODIFY。请参阅CEdit:SetModifyCEdit:GetPasswordCharTCHAR GetPasswordChar()const;返回值指定在用户输入字符处显示的字符。如果无密码,则返回NULL。说明调用此成员函数获取在用户输入密码时所显示的密码字符。如果编辑控件是用ES_PASSWORD风格建立的,则缺省的密码字符为一个星号(* )。要了解更多信息,请参阅Win32文档中的EM_GETPASSWORDCHAR。请参阅CEdit:SetPasswordCharCEdit:GetRectvoid GetRect(LPRECT lpRect)const;参数lpRect指向RECT结构以接收格式化矩形。说明调用此成员函数获取一个编辑控件的格式化矩形。此格式化矩形为文本的边界矩形,与编辑控件窗口的大小无关。多行编辑控件的格式化矩形可以被SetRect和SetRectNP成员函数改变。要了解更多信息,请参阅Win32文档中的EM_GETRECT。请参阅CEdit:SetRect, CEdit:SetRectNPCEdit:GetSelDWORD GetSel()const;void GetSel(int& nStartChar,int& nEndChar)const;返回值此版本返回一个双字,其低位字为起始位置,高位字为第一个未被选中的字符的位置。参数nStartChar指向当前选中部分的第一个字符位置,用整数表示。nEndChar指向第一个未被选中的字符的位置,用整数表示。说明调用此成员函数获取一个编辑控件中当前被选中部分(如果有)的起始和结束位置,可用参数也可用返回值。要了解更多信息,请参阅Win32文档中的EM_GETSEL。请参阅CEdit:SetSelCEdit:LimitTextvoid LimitText(int nChars=0);参数nChars指定用户可以输入的文本的长度(以字节枚举)。如果参数为0,则长度设置为UINT_MAX个字节,这是缺省情况。说明调用此成员函数限定用户可以向编辑控件中输入的文本的长度。改变文本限定使用户能输入的文本受到限制,而对已在编辑控件中的文本没有影响,也不影响用CWnd中的SetWindowText成员函数能拷贝到编辑控件中的文本的长度。如果用SetWindowText函数输入的文本超过调用LimitText函数所指定的值,则用户可以在编辑控件中删除任何文本,但文本限制会禁止用户将已存在的文本替换为新文本,直到删除当前所选文本而使文本大小降至限制以内。注意在Win32(Windows95和Windows NT)中,SetLimitText代替此函数。要了解更多信息,请参阅Win32文档中的EM_LIMITTEXT。请参阅CWnd:SetWindowsText,CEdit:GetLimitText,CEdit:SelLimitTextCEdit:LineFromCharInt LineFromChar(int nIndex=-1)const;返回值返回由nIndex指定的字符索引的行号,此行号从0开始。如果nIndex为-1,则返回所选部分第一个字符的行号,如果无选定部分,则返回当前行号。参数nIndex包含编辑控件文本中所需字符的基于的索引值,或者包含-1。如果为-1则指定为当前行,即包含脱字符的行。说明调用此成员函数获取包含指定字符索引的行的行号,字符索引指编辑控件中从开始到指定字符的字符数。此成员函数仅适用于多行编辑控件。要了解更多信息,请参阅Win32文档中的EM_LINEFROMCHAR。请参阅CEdit:LineIndexCEdit:LineIndexInt LineIndex(int nLine=-1)const;返回值nLine所指定的行的字符索引。如果指定的行号大于编辑控件的行数,则返回-1。参数nline包含编辑控件文本中所需字符的索引值(此索引由0开始),如果为-1则指定为当前行,即包含脱字符的行。说明调用此成员函数获取多行编辑控件中一行的字符索引,字符索引指从文本控件中文本开头到指定行的字符数。此成员函数仅适用于多行编辑控件。要了解更多信息,请参阅Win32文档中的EM_LINEINDEX。请参阅CEdit:LineFromCharCEdit:LineLengthInt LineLength(int nLine=-1)const;返回值当函数由多行编辑控件调用时,返回由nLine所指定的行的长度(以字节数表示);当函数由单行编辑控件调用时,返回编辑控件中文本的长度(以字节数表示)。参数nLine指定要获取长度的行的字符索引。如果参数值为-1,表示当前行(即包含脱字符的行),不包括此行中被选中的部分文本的长度。LineLength在单行编辑控件调用时是被忽略的。说明调用此成员函数获取在编辑控件中一行的字符长度。调用此成员函数在多行编辑控件中获取一个指定了行号的行的字符索引。要了解更多信息,请参阅Win32文档中的EM_LINELENGTH。请参阅CEdit:LineIndexCEdit:LineScrollvoid LineScroll(int nLine,int nChars=0);参数nLine指定纵向滚动的行数。nChars指定水平滚动的字符数。如果编辑控件使用ES_RIGHT或ES_CENTER风格,此值无效。说明调用此成员函数滚动多行编辑控件的文本。此成员函数仅用于多行编辑控件。编辑控件的纵向滚动不能超过该文本的最后一行,如果当前行号加上由nLines指定的行数超过编辑控件中的总行数,则它的值被调整而使得文本的最后一行滚动达到编辑控件窗口的顶端。此函数可以水平滚动经过每行的最后一个字符。要了解更多信息,请参阅Win32文档中的EM_LLNESCROLL。请参阅CEdit:LineIndexCEdit:Pastevoid Paste();说明调用此成员函数将剪贴板上的数据插入CEdit的插入点,仅在剪贴板上的数据具有CF_TEXT格式时数据才可以被插入。要了解更多信息,请参阅Win32文档中的WM_PASTE。请参阅CEdit:Clear, CEdit:Copy, CEdit:CutCEdit:PosFromCharCpoint PosFromChar(UINT nChar)const;返回值由nChar指定的字符的左上角坐标。参数nChar指定字符的索引(从0开始)。说明调用此成员函数获取此CEdit对象中一个指定字符的位置(左上角),此字符由它的索引值给定。如果nChar大于此CEdit对象中最后一个字符的索引,则返回CEdit对象中经过最后一个字符后的坐标位置。注意此成员函数仅适用于以Windows 95和Windows NT开始的版本。要了解更多信息,请参阅Win32文档中的EM_POSFROMCHAR。请参阅CEdit:CharFromPosCEdit:ReplaceSelvoid ReplaceSel(LPCTSTR lpszNewText,BOOL bCanUndo=False);参数lpszNewText指向一个以空终止的替换字符串。bCanUndo如果指定此替代可以被撤消,则将此参数设置为TRUE。缺省值为FALSE。说明调用此成员函数将编辑控件中的当前选定部分替换为由lpszNewText指定的文本。仅替换编辑控件中文本的一部分。如果要替换全部文本,请使用CWnd:SetWin-dow Text成员函数。如果当前未选定文本,则将文本插入当前光标位置。要了解更多信息,请参阅Win32文档中的EM_REPLACESEL。请参阅CWnd:SetWindowTextCEdit:SetHandlevoid SetHandle(HLOCAL hBuffer);参数hBuffer包含一个指向局部内存的句柄。此句柄必须已由LocalAlloc Windows函数使用 LMEM_MOVEABLE标记创建。该存储区被认为包含一个带空终止符的字符串,如果不是这样,则缓冲区的第一个字符应被设置为0。说明调用此成员函数设置一个可被多行编辑控件使用的局部内存句柄。编辑控件便可以使用此缓冲区来存储当前显示的文本,而不必分配自己的缓冲区。此函数仅对多行编辑控件有效。当应用设置一个新的存储句柄时,应使用GetHandle成员函数获取一个当前缓冲内存句柄,并使用LocalFree Windows函数释放此缓冲区。此函数清除撤消缓冲区(CanUndo成员函数返回0)和内部修改标记(GetModify成员函数返回0),编辑控件被重新设置。仅在使用DS_LOCALEDIT风格标志设置构造一个多行编辑控件对话框后,才可以在此对话框中使用此成员函数。注意此函数不可在Windows 95中使用,如果在Windows 95中使用GetHandle会返回NULL。此函数仅在Windows NT 3.51以上的版本中使用。要了解更多信息,请参阅Win32文档中的EM_SETHANDLE,LocalAlloc,LocalFree。请参阅CEdit:CanUndo,CEdit:GetHandle,CEdit:GetModifyCEdit:SetLimitTextvoid SetLimitText(UNIT nMax);参数nMax新的文本限制,以字节计算。说明调用此成员函数设置编辑控件中的文本的长度限制。此限制是编辑控件可以接收的以字节形式表示的文本大小。改变文本限定仅使用户能输入的文本受到限制,而对已在编辑控件中的文本没有影响,也不影响用CWnd中的SetWindowText成员函数能拷贝到编辑控件中的文本的长度。如果用SetWindowText函数输入的文本超过调用LimitText函数所指定的值,则用户可以在编辑控件中删除任何文本,但文本限制会禁止用户将已存在的文本替换为新文本,直到删除当前所选文本而使文本大小降至限制以内。在Win32中,SetLimitText代替此函数。要了解更多信息,请参阅Win32文档中的EM_SETLIMITTEXT。请参阅CEdit:GetLimitText,CEdit:LimitTextCEdit:SetMarginsvoid SetMargins(UINT nLeft,Uint nRight);参数nLeft以像素表示的新的文本左边距宽度。nRight以像素表示的新的文本右边距宽度。说明调用此成员函数设置编辑控件的左右边距。注意此成员函数仅在Windows 95和Windows NT 4.0以上版本中可用。要了解更多信息,请参阅Win32文档中的EM_SETMARGINS。请参阅CEdit:GetMarginsCEdit:SetModifyvoid SetModify(BOOL bModified=TRUE);参数bModifiedTRUE表示文本被改变了,FALSE表示没有改变,缺省情况下设定了改变标志。说明调用此成员函数设置或清除编辑控件的改变标志。改变标记表明文本是否被改变。当用户改变文本时,此标志被自动设置,它的值在调用GetModify成员函数时获取。要了解更多信息,请参阅Win32文档中的EM_SETMODIFY。请参阅CEdit:GetModifyCEdit:SetPasswordCharvoidGetPasswordChar(TCHAR ch);参数ch指定在用户输入字符处显示的字符。如果值为0,则显示输入的实际字符。说明调用此成员函数在编辑控件中设置或清除用户输入文本时所显示的密码字符。此成员函数对多行编辑控件无效。当调用SetPasswordChar成员函数时,CEdit将用ch所指定的字符替代所有可视的字符。如果编辑控件是用ES_PASSWORD风格建立的,则缺省的密码字符被设置为一个星号(* )。此风格在SetPasswordChar以ch=0调用时删除。要了解更多信息,请参阅Win32文档中的ES_SETPASSWORDCHAR。请参阅CEdit:GetPasswordCharCEdit:SetReadOnlyBOOL SetReadOnly(BOOL bReadOnly=TRUE);返回值操作成功,则返回非零值;当发生错误时为0。参数bReadOnly指定设置还是去掉编辑控件的只读状态。如果为TRUE值,则设置为只读状态;如果为FALSE值,则设置为可读写状态。说明调用此成员函数设置编辑控件的只读状态。当前的只读状态可由CWnd:GetStyle的返回值的ES_READONLY标志测出。要了解更多信息,请参阅Win32文档中的EM_SETREADONLY。请参阅CEdit:GetStyleCEdit:SetRectvoid GetRect(LPRECT lpRect);参数lpRect指向RECT结构或CRect对象的指针,指定格式化矩形的新的尺寸。说明调用此成员函数用指定坐标设置一个编辑控件的矩形的尺寸。此成员函数仅对多行编辑控件有效。使用SetRect函数设置一个对多行编辑控件的格式化矩形。此格式化矩形为文本的边界矩形,与编辑控件窗口的大小无关。当编辑控件首次被创建时,格式化矩形与用户的编辑控件窗口区一样。使用SetRect成员函数后,应用程序可以使格式化矩形大于或小于编辑控件窗口。如果编辑控件没有滚动条,在格式化矩形大于窗口时,文本将被剪切而不是被覆盖。如果编辑控件包括一个边界,则格式化矩形的大小将被边界的大小变低。如果用GetRect成员函数的返回值来调整矩形的大小,在传递矩形之前应去掉边界大小。调用SetRect函数时,编辑控件的文本格式和显示方式将被重新设置。要了解更多信息,请参阅Win32文档中的EM_SETRECT。请参阅CRect:CRect,CRect:CopyRect,CRect:operator=,CRect:SetRectEmpty,CEdit: GEtRect,Cedit:SetRectNPCEdit:SetRectNPvoid GetRectNP(LPRECT lpRect);参数lpRect指向RECT结构或CRect对象的指针,指定格式化矩形的新的大小。说明调用此成员函数用一个多行编辑控件设置格式化矩形。此格式化矩形为文本的边界矩形,与编辑控件窗口的大小无关。除了编辑控件窗口不被重新设置外,SetRectNP与SetRect成员函数一致。当编辑控件首次被创建时格式化矩形与用户的编辑控件窗口区一样。使用SetRect NP成员函数后,应用程序可以使格式化矩形大于或小于编辑控件窗口。如果编辑控件没有滚动栏,在格式化矩形大于窗口时,文本将被剪切而不是被覆盖。此成员函数仅对多行编辑控件有效。要了解更多信息,请参阅Win32文档中的EM_SETRECTNP。请参阅CRect:CRect:CopyRect,CRect:Operator=,CRect:SetRectEmpty,CEdit:GetRect,CEdit:SetRectCEdit:SetSelvoid 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指出结束位置。说明调用此成员函数在一个编辑控件中选择一定范围的字符。要了解更多信息,请参阅Win32文档中的EM_SETSEL。请参阅CEdit:GetSel, CEdit:ReplaceSelCEdit:SetTabStopsvoid SetTabStops();BOOL SetTabStops(const int& cxEachStop);BOOL SetTabStops(int nTabStops,LPINT rgTabStops);返回值如果制表键被设置,则返回非零值,否则为0。参数cxEachStop指定在每个cxEachStop对话单位设置制表键停止。nTabStops指定包含在rgTabStops中的制表键停止个数。此个数必须大于1。rgTabStops是一个指向无符号整数数组的指针,此数组指定了对话单位的制表键停止个数。一个制表键单元是一个水平或垂直距离,一个水平制表键单元等于宽度相同的当前对话框的四分之一,一个垂直制表键单元等于高度相同的当前对话框的八分之一,对话基本单元是基于当前系统字体的高度和宽度计算的,WindowsGetDialogBaseUnits函数以像素形式返回当前对话基本单元。说明调用此成员函数在一个多行编辑控件中设置制表键停止。当文本被拷贝到多行编辑控件时,文本中的任何制表键之间均会产生一段空白。要将缺省的制表键大小为32个对话单位,可不带参数调用此成员函数。如果大小比32大,用cxEachStop作参数调用;设置一个数组形式的制表键停止,可使用双参数调用。此成员函数仅适用于多行编辑控件。SetTabStops不会自动重画编辑窗口。如果要改变已在文本控件中的文本的制表键停止,应调用CWnd:InvalidateRect来重画编辑窗口。要了解更多信息,请参阅Win32文档中的EM_SETTABSTOPS。请参阅CWnd:InvalidataRectCEdit:UndoBOOL Undo();返回值对于单行编辑控件总是返回非零值。对于多行编辑控件,如果操作成功,则返回非零值,失败则返回0。说明调用此成员函数撤消编辑控件的最后一次操作。撤销操作也可以被撤消。例如,可以第一次调用撤销来保存被删文本,在没有别的操作发生时,可以再次调用撤消操作将文本删除。要了解更多信息,请参阅Win32文档中的EM_UNDO。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析构函数来处理分配情况。【库 名】【成员函数】(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在一个多行编辑

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论