visual c++ 6.0中CEdit的消息



我有一个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年版)

您可以在消息映射中使用ON_CONTROL_RANGE将所有消息分派到同一个函数。要做到这一点,有必要确保id在连续范围内。(必要时编辑resource.h)

ON_CONTROL_RANGE(BN_CLICKED, IDC_RADIO_DRAWALL, IDC_RADIO_DRAWBEST, OnRadioBtnDraw)
void CVisualPPView::OnRadioBtnDraw(UINT nID)
{
}

相关内容

  • 没有找到相关文章

最新更新