Как я могу проверить, является ли выпадающий список выпадающим списком? - PullRequest
2 голосов
/ 28 мая 2009

Есть ли способ получить тип CComboBox?

Мне нужно знать, это «выпадающий список» или «выпадающий список».

Я пробовал следующее:

if (m_MyComboBox.GetStyle() & CBS_DROPDOWN)
   // do some stuff

и

if (m_MyComboBox.GetStyle() & CBS_DROPDOWNLIST)
   // do some stuff

Но оба выражения, по-видимому, оцениваются как ИСТИНА, независимо от того, является ли CComboBox выпадающим или выпадающим списком.

Ответы [ 2 ]

5 голосов
/ 28 мая 2009

Используйте следующий код

if ((m_MyComboBox.GetStyle() & 3) == CBS_SIMPLE)
{
    //SIMPLE
}
if ((m_MyComboBox.GetStyle() & 3) == CBS_DROPDOWN)
{
    //DROPDOWN
}
if ((m_MyComboBox.GetStyle() & 3) == CBS_DROPDOWNLIST)
{
    //DROPDOWNLIST
}
3 голосов
/ 28 мая 2009

Из winuser.h:

#define CBS_DROPDOWN          0x0002L
#define CBS_DROPDOWNLIST      0x0003L

Вам нужно:

switch(m_MyComboBox.GetStyle() & CBS_DROPDOWNLIST)
{
  case CBS_SIMPLE:
    // do stuff
    break;

  case CBS_DROPDOWN:
    // do stuff
    break;

  case CBS_DROPDOWNLIST:
    // do stuff
    break;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...