动态子类化CComboBox以得到子控件EDIT及LISTBOX

本文介绍了如何在MFC应用中动态子类化CComboBox控件,以实现对ComboBox内Edit框的限制输入功能,只允许输入数字和特定字符。通过创建CSuperEdit和CSuperComboBox类,实现对输入的ASCII值检查,并提供代码示例展示整个过程。
摘要由CSDN通过智能技术生成
动态子类化CComboBox以得到子控件EDIT及LISTBOX CComboBox以得到子控件EDIT及LISTBOX 作者: scmcopew

动态子类化CComboBox以得到子控件EDITLISTBOX

Joise.LI写于2004-4-6

ComboBox是比较常用的一个控件,有三种样式:CBS_SIMPLE(简单),CBS_DROPDOWN(下拉),CBS_DROPDOWNLIST(下拉列表),其中下拉列表样式是不允许输入的,简单样式是永远都显示下拉框的。

ComboBox是由一个ListBox和一个Edit框组合而成。本文将以限制只能输入电话号码为例介绍子类化过程得到Edit框(类似的可以得到ListBox)。

电话号码只能有数字和“-”和“+”组成,经查ASCII表,知道对应的ASCII值为48-57及45和43共12个值。

好,闲话暂停,开始子类化之旅。

第一步 先建立一个MFC应用程序工程,取名叫UseSuperCombox(这里表示一下SORRY,因为顺手多写了一个X,呵呵)。

第二步 新建一个MFC类,选择继承自CEdit,取名叫CSuperEdit,这个类是用来替换ComboBox中的Edit框的。代码如下:

² SuperEdit.h:

class CSuperEdit : public CEdit

{

DECLARE_DYNAMIC(CSuperEdit)

public:

CSuperEdit();

virtual ~CSuperEdit();

protected:

DECLARE_MESSAGE_MAP()

public:

afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);

};

² SuperEdit.cpp:

// SuperEdit.cpp : 实现文件

//

#include "stdafx.h"

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值