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

nanfeng231 2004-08-07 05:51:48
怎样一次删除CEdit中文本啊?
就是有时会输入错误,想一次删除文本,就像先用鼠标选择好,然后一个键就删除?
...全文
219 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
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);

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧