WEB开发网
开发学院软件开发VC 增强Edit控件为日期输入控件 阅读

增强Edit控件为日期输入控件

 2006-07-23 11:18:36 来源:WEB开发网   
核心提示: void CMyEdit::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags){// TODO: Add your message handler code here and/or callCString str;int oldpos=LOWO

void CMyEdit::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
  // TODO: Add your message handler code here and/or call
  CString str;
  int oldpos=LOWORD(GetSel());
  GetWindowText(str);
  if ( nChar==VK_DELETE )
  {
    if ( oldpos<4 || ( oldpos>4 && oldpos<7) || oldpos>7)
    {
      CEdit::OnKeyDown(nChar, nRepCnt, nFlags);
      GetWindowText(str);
      if ( oldpos<7 )
        str.Insert(str.Find(''-'',oldpos),'' '');
      SetWindowText(str);
      SetSel(FormatPos(oldpos,oldpos));
    }
    else
      if ( oldpos==4 || oldpos==7 )
        return ;
  }
  else
    CEdit::OnKeyDown(nChar, nRepCnt, nFlags);
}

三、在对话框类中添加变量 CMyEdit,m_MyEdit,在初始化函数中添加动态子类化函数 :

m_MyEdit.SubclassDlgItem(IDC_EDIT,this);

为了演示一些其他问题,我添加了两个按钮子类化和反子类化。相关代码如下::

子类化:

void CAdEditDlg::OnBtnsub()
{
  m_MyEdit.SubclassWindow(GetDlgItem(IDC_EDIT)->m_hWnd);
  GetDlgItem(IDC_BTNUNSUB)->EnableWindow(true);
  GetDlgItem(IDC_BTNSUB)->EnableWindow(false);
  m_MyEdit.SetFocus();
}

反子类化:

上一页  1 2 3 4  下一页

Tags:增强 Edit 控件

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接