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

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

 2007-10-07 20:23:16 来源:WEB开发网   
核心提示: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())

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:VC Edit

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