1. edit控件---与---控件ID直接操作
由id—转化—句柄—类指针
((CEdit*)GetDlgItem(IDC_EDITID))->SetWindowText(str);//注意括号的位置括法
2. edit控件---与---Cstring类型
如果只是简单的获取 edit控件内容,或设置简单的内容 建议使用cstring类型成员变量。
UpdateData(TRUE) 即:控件的值—>变量。
——刷新控件的值到对应的变量。(外部输入值交给内部变量)
-----------------------------------默认的缺省参数为TRUE,
UpdateData(FALSE)即:变量值—>控件显示。
—— 拷贝变量值到控件显示。(变量的最终运算结果值交给外部输出显示)
例如:我们在对话框窗口中添加了3个editbox,然后将前两个的值相加,然后在第三个editbox中输出。
那么我们可以做如下处理:
1。用类向导在3个editbox下添加3个变量,我们命名为m_num1,m_num2,m_num3。
2。然后我们可以多添加一个button控件,在其的click处理事件中,添加以下代码:
UpdateData();// 默认的缺省参数为TRUE,这样,将EditBox控件的内容读入到与其关联的变量中
m_num3 = m_num1+m_num2;
UpdateData(FALSE);// 将变量的值,输出到与其关联的EditBox中
就可以了
示例:
CString m_strEdit;
//获得edit框内容
UpdateData(true);
此时m_strEdit就是edit框内容的字符串变量。
//要更新edit的话只要对m_strEdit进行赋值然后
UpdataData(false);//即可
3. edit控件---与---Cedit类型
如果是一些对edit框的复杂操作建议用cedit类型。
相关函数:
(1) void SetSel( long nStartChar开始位置索引, long nEndChar 结束为止索引);
--------------------用来选中edit框中的文本,选中后光标位置在结尾处
void SetSel( CHARRANGE& cr );
作用:这个函数的两种形式都用来设置选择的界线,它们可以相互替换
参数: nStartChar 选择中的第一个字符的从零开始的索引。
nEndChar 选择中的最后一个字符的从零开始的索引。
cr 一个CHARRANGE结构,包含了当前选择的界线。
CEdit::SetSel
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 指出结束位置。
(2) DWORD GetSel( ) const;
void GetSel( int& nStartChar, int& nEndChar ) const;
------------------------用来得到edit框中所选部分的位置。
两个函数都是CEdit的成员函数,用来获得所选正文的位置。
GetSel的第一个版本返回一个DWORD值,其中低位字说明了被选择的正文开始处的字符索引,高位字说明了选择的正文结束处的后面一个字符的字符索引,
如果没有正文被选择,那么返回的低位和高位字节都是当前插入符所在字符的字符索引。
GetSel的第二个版本的两个参数是两个引用,其含义与第一个版本函数返回值的低位和高位字相同。
(3)void ReplaceSel( LPCTSTR lpszNewText, BOOL bCanUndo = FALSE );
lpszNewText指定的文本替换在编辑控件中当前选择。
lpszNewText指向包含替换文本的一个 NULL 终止的字符串。
bCanUndo若要指定此功能可以取消,请将该参数的值设置为 TRUE 。 默认值为 FALSE。
替换文本的一部分在编辑控件中。
如果您希望替换所有文本,请使用 CWnd::SetWindowText 成员函数。
如果没有当前选择,替换文本在当前的光标位置插入。
区别:SetWindowText—光标位置在开始,而replacesel在结尾
示例:
CEdit m_ctrlEdit;m_ctrlEdit.SetSel(0,0); //将光标移到开头=所选部分开头和结尾都在0
m_ctrlEdit.SetSel(-1); //将光标移到末尾=所选部分开头在结尾m_ctrlEdit.SetSel(-1, -1)也可
m_ctrlEdit.SetSel(0,-1); //选中所有内容—如果没有当前选择,替换文本在当前的光标位置插入。
m_ctrlEdit.ReplaceSel("替换内容");//写入值
//得到当前edit框中的所有字符数
int iStart,iCount;//iCount 为字符数
m_ctrlEdit.SetSel(0,-1); //选中所有
m_ctrlEdit.GetSel(iStart,iCount);