怎样一次删除CEdit中文本啊?再线等待!

nanfeng231 河北大学 2004-08-07 05:51:48
怎样一次删除CEdit中文本啊?
就是有时会输入错误,想一次删除文本,就像先用鼠标选择好,然后一个键就删除?
...全文
161 点赞 收藏 15
写回复
15 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
nainaixiong 2004-12-07
mark
回复
Kudeet 2004-08-07
m_Edit.SetSel(0,-1);//编辑控件中的全部文本被选中
要模拟退格键
keybd_event(VK_SPACE,0,0,0);
keybd_event(VK_SPACE,0,KEYEVENTF_KEYUP,0);
回复
nanfeng231 2004-08-07
m_Edit.SetSel(a,b);
m_Edit.SetFocus();
回复
nanfeng231 2004-08-07
我想是这样的效果,比如
在一个CEdit中你输入了“this is a text “
但是你发现你输入的控件错了,你用鼠标把文本全选中(选中时文本后面是有一个矩形的,为兰色),然后按退格键一次删除,
我想前面的我想用程序完成,然后,按一下退格键删除!
回复
nanfeng231 2004-08-07
m_Edit.GetSel(0,-1);
我试了
error C2664: 'void __thiscall CEdit::GetSel(int &,int &) const' : cannot convert parameter 1 from 'const int' to 'int &'
A reference that is not to 'const' cannot be bound to a non-lvalue
Error executing cl.exe.

这里是csdn的解释
CEdit::GetSel
DWORD GetSel( ) const;

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

Return Value

The version that returns a DWORD returns a value that contains the starting position in the low-order word and the position of the first nonselected character after the end of the selection in the high-order word.

回复
nineclock 2004-08-07
m_Edit.GetSel(0,-1);这样就可以选中
回复
kvw3000 2004-08-07
重载PreTranslateMessage

BOOL CMainEditDlg::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_KEYDOWN)
{
switch(pMsg->wParam)
{
case VK_ESCAPE:
switch(::GetDlgCtrlID(::GetFocus()))
{
case IDC_FULLNAME://焦点在这个控件时按下ESC键,改为你的控件标识
m_FullName.SetSel(0, -1);//CEdit m_FullName
m_FullName.Clear();
break;

default:
break;
}
return FALSE;

case VK_RETURN:
return TRUE;
}
}

return CDialog::PreTranslateMessage(pMsg);
}
回复
nineclock 2004-08-07
我没的说了,都说完了 :)
回复
nanfeng231 2004-08-07
明天揭贴
回复
nanfeng231 2004-08-07
我要的是选中?就是加上,黑底的那种,和word一样
回复
maxcode 2004-08-07
方法是笨了一点
只要删除一个字符就可以实现。

void CCT002Dlg::OnChangeEdit1()
{

CString sDst;
static int iFirst=0;
static CString sSrc;

if (!iFirst)
sSrc=sDst="";


GetDlgItemText(IDC_EDIT1,sDst);
if (sDst.GetLength()<sSrc.GetLength())
{
SetDlgItemText(IDC_EDIT1,"");
}

sSrc=sDst;
iFirst=1;

}
回复
nanfeng231 2004-08-07
当然选中了!
回复
luobo525 2004-08-07
接楼上:
如果你的成员变量是CEidt m_Edit
则:m_Edit.GetSel(0,-1);
m_Edit.Replace("");
回复
lixiaosan 2004-08-07
就是有时会输入错误,想一次删除文本
==================
不用选中,就删除全部?
回复
Kudeet 2004-08-07
如果你绑定了成员变量,CString m_Edit
你可以
m_Edit.Empty();
UpdateData(FALSE);

你也可以
SetDlgItemText(IDC_EDIT, "");
UpdateData(TRUE);
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-08-07 05:51
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……