您的位置:首页 > 其它

MFC控件系列之一:Edit Control用法

2016-01-19 22:57 281 查看
转载来源:/article/1303969.html

CEdit类的主要成员函数

1.GetWindowText 获取编辑框内的内容

2.SetWindowText 设置编辑框内的内容

3.int LineFromChar(int nIndex = –1) const;

返回多行编辑框中指定索引的字符所在行的行号(从零开始),只适用于多行编辑框。nIndex等于-1则返回所选择正文的第一个字符所在行的索引。如果没有选择正文,则返回当前行的行号。

4.int LineIndex(int nLine = –1) const;

返回由nLine指定行的起始字符在编辑框的整个字符串中的索引,只适用于多行编辑框。如果指定行超过编辑框的最大行数,则返回-1,而如果nLine为-1,则返回当前插入符所在行的起始字符的索引。

5.void GetSel(int& nStartChar,int& nEndChar) const;

获取选择正文的索引范围。nStartChar返回被选择正文的起始索引,nEndChar返回被选择正文的终止索引(不包括在选择范围内)。如果没有选择正文,则两者均为当前插入符的索引。

6.void SetSel(int nStartChar,int nEndChar,BOOL bNoScroll=FALSE);

选择编辑框中的正文。nStartChar为选择开始处的索引,nEndChar为选择结束处的索引。如果nStartChar为0并且nEndChar为-1,则选择所有正文,而如果nStartChar为-1则取消所有选择。bNoScroll为FALSE时滚动插入符并使之可见,为TRUE时不滚动。

7.void ReplaceSel(LPCTSTR lpszNewText,BOOL bCanUndo = FALSE);

用lpszNewText指向的字符串来替换选择的正文。如果bCanUndo为TRUE则替换可以被撤销。

8.int GetLineCount() const;

获取正文的行数,只适用于多行编辑框。如果编辑框没有正文则返回1。

9.int LineLength( int nLine = –1 ) const;

获取指定字符索引所在行的字节长度(行尾的回车和换行符不计算在内),参数nLine 说明了为字符索引。如果nLine 的值为-1,则函数返回当前行的长度(假如没有正文被选择),或选择正文占据的行的字符总数减去选择正文的字符数(假如有正文被选择)。若用于单行编辑框,则函数返回整个正文的长度。

10.int GetLine( int nIndex, LPTSTR lpszBuffer ) const;

int GetLine( int nIndex, LPTSTR lpszBuffer, int nMaxLength ) const;

用来获得指定行的正文(不包括行尾的回车和换行符),只适用于多行编辑框。参数nIndex 是行号,lpszBuffer 指向存放正文的缓冲区,nMaxLength 规定了拷贝的最大字节数。若指定的行号小于编辑框的实际行数,函数返回实际拷贝的字节数,若指定的行号大于编辑框的实际行数,则函数返回0。需要注意的是,GetLine 函数不会在缓冲区中字符串的末尾添加字符串结束符(NULL)。

11.UINT GetLimitText( ) const;

获取编辑框能够接受的正文的最大字节数。

12.void LimitText(int nChars = 0);

设置用户在编辑框中可以输入的正文的最大长度(字节数)。如果nChars为0,则最大长度为UINT_MAX个字节。

编辑框的通知消息

编辑框发生某些事件时会向父窗口发送通知消息。在对话框模板中的编辑框上点右键,选择“Add Event Handler”,为编辑框添加消息处理函数时,可以在“Message type”列表中看到这些消息。下面简单介绍编辑框的部分通知消息。

EN_CHANGE:编辑框的内容被用户改变了,与EN_UPDATE不同,该消息是在编辑框显示的正文被刷新后才发出的

EN_ERRSPACE: 编辑框控件无法申请足够的动态内存来满足需要

EN_HSCROLL: 用户在水平滚动条上单击鼠标

EN_KILLFOCUS: 编辑框失去输入焦点

EN_MAXTEXT:输入的字符超过了规定的最大字符数。在没有ES_AUTOHSCROLL 或

ES_AUTOVSCROLL: 的编辑框中,当正文超出了编辑框的边框时也会发出该消息

EN_SETFOCUS: 编辑框获得输入焦点

EN_UPDATE: 在编辑框准备显示改变了的正文时发送该消息

EN_VSCROLL: 用户在垂直滚动条上单击鼠标
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: