imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 22.11.2004, 01:48     # 1
Merlyel
Junior Member
 
Регистрация: 10.08.2003
Сообщения: 189

Merlyel Реально крут(а)Merlyel Реально крут(а)Merlyel Реально крут(а)Merlyel Реально крут(а)
Один метод для разных событий

Visual C++
Как сделать, чтобы один метод обрабатывал несколько событий
Т.е. есть две функции, кот вызываются при изменении значения в ComboBox. Как видно, отличаются они на мелочь Как тогда сбросить их в одну функцию?

void CPoteriDlg::OnCbnSelchangeType2()
{
FillData(&m_Project2, m_Type2Value);
}
void CPoteriDlg::OnCbnSelchangeType3()
{
FillData(&m_Project3, m_Type3Value);
}

З.Ы. Чувствую, что должно делаться просто... может я просто уже совсем перегрелся сегодня, но не могу придумать
Merlyel вне форума  
Старый 22.11.2004, 10:13     # 2
gandalf_g
Junior Member
 
Регистрация: 09.12.2003
Адрес: Москва
Сообщения: 62

gandalf_g Путь к славе только начался
юзать ON_CONTROL_RANGE, затем по ID контрола смотреть какой имеено комбо бокс был изменен, и в зависимости от ID и вызывать функцию FillData с соотв. параметрами

ON_CONTROL_RANGE(ON_CBN_SELCHANGE, IDC_COMBO1, IDC_COMBO3, OnCbnSelected)

void CMyDialog::OnCbnSelected(UINT nID)
{
int nCbnID = nID - IDC_COMBO1;
if (nCbnID == 0)
{
FillData(&m_Project1, m_Type1Value);
}
if (nCbnID == 1)
{
FillData(&m_Project2, m_Type2Value);
}
// и т.д.
}

ЗЫ: идешники IDC_COMBO1, IDC_COMBO2, IDC_COMBO3 должны идти подряд, см. resource.h
__________________
не учите людей думать, они вам этого не простят...
gandalf_g вне форума  
Старый 22.11.2004, 10:35     # 3
Duch
Guest
 
Сообщения: n/a

А можно переопределить виртуальную ф-ю PreTranslateMessage

BOOL твой_класс::PreTranslateMessage( MSG* pmsg )
{
if ( pmsg->message == WM_COMMAND && HIWORD(pmsg->wParam) == CBN_EDITCHANGE ) {
Своя_функция( LOWORD(pmsg->wParam) /*ID ComboBox'а*/ )
return 1;
}
return базовый_класс::PreTranslateMessage( pmsg );
}
 


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 17:16.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.