自定义button,自定义editbox可以使button和editbox更符合自己的需求。请看下面示例:只限字母字符输入的editbox建立。
BOOL SubclassDlgItem( UINT nID, CWnd* pParent );
参数:
返回值:如果函数成功,返回非0;否侧,返回0;
备注:
当一个控件被“动态子类化”时,Windows消息将会绕行CWnd的消息映射,并且windows消息会首先在CWnd类中被调。传给基类的消息默认会传给控件。
这个函数绑定windows控件到CWnd对象中,并且替代了控件的WndPro和AfxWndPro函数。这个函数
图1
void CLimitEditBox::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) { // TODO: //判断nChar是否为字母 if (::IsCharAlpha((TCHAR)nChar)) { //转换为大写字母 nChar=(UINT)::CharUpper((LPTSTR)nChar); //通过DefWindowProc函数调用默认的消息处理函数 DefWindowProc(WM_CHAR, nChar, MAKELPARAM(nRepCnt, nFlags)); } //注释掉 //CEdit::OnChar(nChar, nRepCnt, nFlags); }
// TODO: 在此添加额外的初始化代码 m_limitEditBox.SubclassDlgItem(IDC_EDIT1, this); return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
P.S下载工程源码(VS2012)
【VC编程技巧】控件?4.2自定义EDIT(只限字母字符输入)
原文地址:http://blog.csdn.net/chen_jint/article/details/40823609