Visual C++6.0中CEdit的消息
Posted
技术标签:
【中文标题】Visual C++6.0中CEdit的消息【英文标题】:Messages of CEdit in visual C++6.0 【发布时间】:2013-06-20 06:20:50 【问题描述】:我有一个 CDialog
包含许多 CEdit
对象。他们在取消焦点时都必须做类似的操作(例如:当焦点被取消时,编辑框文本会改变)。
我可以这样定义对话框的消息映射:
ON_EN_KILLFOCUS(ID1, kf1)
ON_EN_KILLFOCUS(ID2, kf2)
ON_EN_KILLFOCUS(ID3, kf3)
ON_EN_KILLFOCUS(ID4, kf4)
所有kf
函数都会调用一个通用函数:
CommonFunction(CEdit* editBox)
但是有没有办法转移kf
函数本身的编辑框呢?我的意思是这样定义:
ON_EN_KILLFOCUS(ID1, kf(ID1))
ON_EN_KILLFOCUS(ID2, kf(ID2))
ON_EN_KILLFOCUS(ID3, kf(ID3))
ON_EN_KILLFOCUS(ID4, kf(ID4))
或其他方式。
注意:我使用 Visual C++ 6.0('98 版)
【问题讨论】:
【参考方案1】:您可以在消息映射中使用 ON_CONTROL_RANGE 将所有消息分派到同一个函数。为此,必须确保 ID 在连续范围内。 (如有必要,编辑 resource.h。)
ON_CONTROL_RANGE(BN_CLICKED, IDC_RADIO_DRAWALL, IDC_RADIO_DRAWBEST, OnRadioBtnDraw)
void CVisualPPView::OnRadioBtnDraw(UINT nID)
【讨论】:
以上是关于Visual C++6.0中CEdit的消息的主要内容,如果未能解决你的问题,请参考以下文章
C# 6.0 功能不适用于 Visual Studio 2015
microsoft visual c++6.0和micorostf visual c++ 2010 express有啥区别
MFC:在派生的 CEdit 中没有收到 EN_CHANGE 消息