修改现有控件的功能->子类化技术
只能输入字符 而不能输入别的类型----------------拦截消息
两个函数SetwindowsLong()
CallWindowsProc()
下面的 小控件都是 一个小窗口
是窗口就有自己的窗口过程,可以给其一个新的额窗口过程把原来的窗口过程替换掉,用新窗口过程处理他的消息 ,即把原来的消息拦截下来,用新的窗口过程来处理
修改ID后添加C++的类:
在新类中声明函数
在主文件中包含新类的头文件 和声明全局变量:
在初始化对话框中 把新窗口(即文本框)句柄和类关联起来:
定义新的变量和声明窗口过程:格式为windows要求
实现新Attach函数:
定义新窗口过程属性 常量:
新的窗口过程转去调用旧的窗口过程:
下面是拦截消息:
增加 删除消息:
增加新声明的一个函数:
实现该函数:
小数点处理:
负号处理:
增加健壮性 如果没有转去调用默认的窗口过程“:
只能输入数组 负号 小数点 其他的均不能输入:
双击 读取按钮:
增加一个成员函数:
实现该函数:
因为出错了 所以 修改函数为如下:
在 按钮双击后的处理函数中 如下”:
增加取消函数声明:
把文本框的窗口过程 换成旧的窗口过程
在析构中调用:
法二 在对话框销毁时调用:“
时间: 2024-10-22 17:45:40