Edit Box 的使用

本文介绍如何利用MFC中的EditBox组件显示系统实时时间和当前日期时间,并通过设置编辑框属性实现只允许输入特定字符的功能。

 

用Edit Box 显示系统实时时间:

 

在对话框的初始化函数OnInitDialog()中添加以下程序:

 

SYSTEMTIME st;
GetLocalTime(&st);
CString str_temp;
str_temp.Format("%u/%u/%u %u:%u:%u:%u/n", st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond, st.wMilliseconds);
CEdit* edt = (CEdit*)GetDlgItem(IDC_EDIT_TIME);
edt->SetWindowText(str_temp);

 

用Edit Box 显示系统当前时间

 

在对话框的初始化函数OnInitDialog()中添加以下程序:

 

CString str;
CTime tm;

tm = CTime::GetCurrentTime();
//把获得的当前时间保存到变量tm中
str = tm.Format("%Y年%m月%d日 %X");
this->GetDlgItem(IDC_EDIT1)->SetWindowText(str);

 

 

用Edit Box 只接受数字输入:

 

在对话框初始化函数中添加以下代码:

 

CEdit* m_edit = (CEdit*)GetDlgItem(IDC_EDIT1);
long wl = GetWindowLong(m_edit->m_hWnd, GWL_STYLE);  //获得Edit Box的窗口风格
SetWindowLong(m_edit->m_hWnd, GWL_STYLE, wl | ES_NUMBER); //
设置Edit Box新风格

 

自定义Edit Box的可输入内容:

 

重载对话框的PreTranslateMessage函数,并且添加以下代码:

 

BOOL CLangziDlg::PreTranslateMessage(MSG* pMsg)
{
  CEdit* m_edit = (CEdit*)GetDlgItem(IDC_EDIT1);
  if((pMsg->hwnd == m_edit->m_hwnd) && (pMsg->message == WM_CHAR))
  {
    if(65 != pMsg->wParam) //
只允许输入字母A(A的ascll码是65)
        return TRUE;
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值