У меня есть поле со списком с 3 опциями для меню запуска.Из этих двух вариантов 2 из 3 будут иметь какое-то влияние на другие пункты меню автозагрузки.Например, если я выберу опцию 1, будет установлен флажок для другой опции, чтобы пользователь мог видеть, что на самом деле делает каждая опция в поле со списком, перед запуском программы.
Моя проблема сейчас заключается в том, что я использовал «ON_CBN_SELCHANGE» в своей карте сообщений, чтобы обнаружить изменение параметра в поле со списком, которое будет выполнять функцию, однако эта функция не может получить доступ к значениям моего поля со списком.Так что, если бы я попытался использовать функцию «GetCurSel ()», она возвращает значение 0. Как мне решить эту проблему?
//Message map
BEGIN_MESSAGE_MAP(COptionsDlg, CDialog)
ON_CBN_SELCHANGE(600, COptionsDlg::OnOptionSelect)
END_MESSAGE_MAP()
//This is the constructor for my combo box
for(int i = 0; i < m_OptionsList.size(); i++)
{
CComboBox* ComboBox = new CComboBox();
ComboBox->Create(WS_CHILD | WS_VISIBLE | WS_VSCROLL | CBS_DROPDOWN, CRect(Left + 10, *Top, Right - 10, *Top + 300), this, 600);
ComboBox->SetFont(DialogFont);
for(int j = 0; j < m_OptionsList[i]->Labels.size(); j++)
{
ComboBox->AddString(m_OptionsList[i]->Labels[j]);
}
}
//This is the function which executes after an option change occurs in the combo box
void COptionsDlg::OnOptionSelect(void)
{
for(int i = 0; i < m_ComboBoxList.size(); i++)
{
int Index = m_ComboBoxList[i]->TheControl->GetCurSel();
if(Index == 1 || Index == 0)
{
//Code that should run if those options are selected
}
}
}