Если вам известен диапазон значений «ID», которые вы присваиваете добавленным элементам управления (как следует), тогда вы можете использовать запись ON_CONTROL_RANGE
на карте сообщений, а не ON_CONTROL
(который обычно используется для указания c, одного элемента управления). Например, для нажатия кнопки на одном из ваших элементов управления (идентификатор которого находится в диапазоне от IDC_FIRST
до IDC_LAST
, вы можете добавить следующую запись карты сообщений:
ON_CONTROL_RANGE(BN_CLICKED, IDC_FIRST, IDC_LAST, OnButtonClick)
Обработчик сообщений, OnButtonClick
, имеет формат, очень похожий на формат для одного элемента управления, но с параметром UINT
, который является идентификатором элемента управления, отправившего сообщение:
void MyDialog::OnButtonClick(UINT nID)
{
int button_number = static_cast<int>(nID - IDC_FIRST);
// .. do something
return;
}
Не стесняйтесь просить о дальнейших действиях уточнение и / или объяснение.