Я кодирую приложение в MSVS 2008, у которого есть элемент управления ComboBox, который я инициализирую через следующий код:
static char* OptionString[4] = {"Opt1",
"Opt2",
"Opt3",
"Opt4"};
BOOL CMyAppDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
m_Option.AddString(OptionString[0]);
m_Option.AddString(OptionString[1]);
m_Option.AddString(OptionString[2]);
m_Option.AddString(OptionString[3]);
m_Option.SetCurSel(0);
return TRUE; // return TRUE unless you set the focus to a control
}
В приведенном выше коде m_Option
- это переменная Control для управления ComboBox.
Теперь, когда я создаю приложение и нажимаю стрелку вниз, раскрывающееся поле показывает ТОЛЬКО первый вариант (так как я выбрал это через мой код). Но, если я нажимаю клавишу со стрелкой вниз на клавиатуре, она циклически проходит через параметры в том порядке, в который я вставил, но никогда не показывает более одного параметра в поле. Итак, в случае, если пользователь хочет выбрать опцию3, он должен перебирать варианты 1 и 2! Хотя, как только я выбираю любую опцию с помощью клавиатуры, соответствующие обработчики событий увольняются, меня это раздражает, как это понятно.
Я также перечисляю свойства управления combo-box - только истинные свойства (для остальных установлено значение false):
- Тип - раскрывающийся список
- Вертикальная панель прокрутки
- Видимый Tabstop
Это беспокоило меня уже несколько недель. Может ли кто-нибудь просветить меня?