摘要:本文主要向大家介绍了VC编程之自定义EDIT(只限字母字符输入),通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。
本文主要向大家介绍了VC编程之自定义EDIT(只限字母字符输入),通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。
4.2自定义EDIT自定义button,自定义editbox可以使button和editbox更符合自己的需求。请看下面示例:只限字母字符输入的editbox建立。
1.了解函数CWnd::SubclassDlgItem
BOOL SubclassDlgItem(
UINT nID,
CWnd* pParent
);
说明:调用这个函数可以“动态子类化”从对话框模板中创建出来的控件;并且将控件绑定在CWnd对象上。
参数:
nID 控件的ID
pParent 控件父层(一般是对话框)
返回值:如果函数成功,返回非0;否侧,返回0;
备注:
当一个控件被“动态子类化”时,Windows消息将会绕行CWnd的消息映射,并且windows消息会首先在CWnd类中被调。传给基类的消息默认会传给控件。
这个函数绑定windows控件到CWnd对象中,并且替代了控件的WndPro和AfxWndPro函数。这个函数
2.在对话框中创建ID:IDC_EIDT1的editbox控件
图1
3通过类向导,创建基于CEdit的CLimitEditBox类
图2
4.在CLimitEditBox类中添加WM_CHAR消息函数,在WM_CHAR消息函数中添加去除非字母字符,并将小写字母转成大写的处理。
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);
}
5.通过函数CWnd::SubclassDlgItem将控件IDC_EDIT1绑定到CWnd类对象中(在BOOL CLimitEditDlg::OnInitDialog())
// TODO: 在此添加额外的初始化代码
m_limitEditBox.SubclassDlgItem(IDC_EDIT1, this);
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
6.最终效果图
以上就介绍了VC/MFC的学习,希望对VC/MFC有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言VC/MFC频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号