Сообщения CEdit в Visual C ++ 6.0

у меня есть 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)

0

Решение

Вы можете использовать ON_CONTROL_RANGE в карте сообщений для отправки всех сообщений одной и той же функции. Для этого необходимо убедиться, что идентификаторы находятся в непрерывном диапазоне. (При необходимости измените resource.h.)

ON_CONTROL_RANGE(BN_CLICKED, IDC_RADIO_DRAWALL, IDC_RADIO_DRAWBEST, OnRadioBtnDraw)

void CVisualPPView::OnRadioBtnDraw(UINT nID)
{
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]