`
tempsitegoogle
  • 浏览: 866595 次
文章分类
社区版块
存档分类
最新评论

编辑框输入不合法时保持原有的值的做法

 
阅读更多

作者:朱金灿

来源:http://blog.csdn.net/clever101

  很多时候当编辑框输入的数据不合法时我们想显示输入前的值。如何实现这个功能呢?

这时需要给编辑框发送EM_UNDO消息。


具体做法可以参考如下:编一个简单的对话框测试程序,添加两个编辑框,其中一个ID为IDC_EDIT1,然后添加下面代码:

void CTestEditDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
  // m_nNum为对话框的int型数据成员
	DDX_Text(pDX, IDC_EDIT1, m_nNum); 
}
BEGIN_MESSAGE_MAP(CTestEditDlg, CDialog)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	//}}AFX_MSG_MAP
	ON_EN_KILLFOCUS(IDC_EDIT1, &CTestEditDlg::OnEnKillfocusEdit1)
END_MESSAGE_MAP()

// IDC_EDIT1编辑框失去输入检点时响应
void CTestEditDlg::OnEnKillfocusEdit1()
{
	// TODO: 在此添加控件通知处理程序代码
	UpdateData(TRUE);
	if(m_nNum>100)
	::SendDlgItemMessage(m_hWnd,IDC_EDIT1,EM_UNDO,0,0);
}

参考文献:

1. 编辑控件(edit)【ZT】



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics