Положить элементы управления на панели инструментов - застрял

Я смотрю на эту документацию уже 5 часов. Я просто не могу соединить шаги. Если вы, ребята, можете просветить меня от всего этого.

Вот этот сайт: http://msdn.microsoft.com/EN-US/library/bb983718(VS.110).aspx

Поэтому моя проблема заключается в следующем: - под номером 5 он попросил меня "установить эти параметры следующим образом:", он даже не упомянул о том, где? Где реализовать конструктор и почему мы используем CMFCToolbarComboBoxButton? когда он уже попросил меня на шаге 4 получить класс с именем CFindComboButton. Должен ли я вместо этого создать для этого contstructor?

- под номером 4(извините за неорганизованную нумерацию проблем) я использовал класс add (а не мастер классов), а затем выбрал MFC Class. Затем я ввожу предположительно CFindComboButton и базовый класс как CMFCToolBarComboBoxButton. Я сделал что-то не так на этом? Нужно ли что-то делать для ID ID_EDIT_FIND_COMBO?

-Когда я регистрирую ID_EDIT_FIND_COMBO в таблице строк, я точно не знаю, что я сделал. Я только что зарегистрировал идентификатор для будущей реализации? Или что-то еще?

-Так что я не могу сделать шаг 5, я перешел к шагу 6. ​​Все, что он просит, - это поиск метода CreateCombo в разделе переопределения свойств в CFindComboButton. Ну, я могу найти только 3 переопределить. Ни один из них не является методом CreateCombo. Ну, оттуда вы можете сказать, что я потерян.

Я новичок в MFC, так что вы можете принять это во внимание.

2 ответа

Несмотря на то, что ваш вопрос немного запутан, позвольте мне попытаться ответить, чтобы он сработал для вас.

  1. Создайте два класса - один производный от CComboBox (назовите его CFindComboBox), а другой - от CMFCToolBarComboBoxButton (назовите его CFindComboBoxButton). Первый класс будет реализовывать Combobox, который будет отображаться при нажатии кнопки раскрывающегося списка на панели инструментов. Эта выпадающая кнопка реализована с помощью CFindComboBoxButton. Надеюсь, это понятно.

  2. Теперь определите конструктор для CFindComboBoxButton как CFindComboBoxButton(UNIT nID, int nImage, DWORD dwStyles), используя три параметра, как описано ниже:

    • Идентификатор команды кнопки, которая будет ID_EDIT_FIND_COMBO (или все, что вы хотите определить как). Это будет определено в таблице строк. Просто добавьте новую запись в таблицу строк со значением ID_EDIT_FIND_COMBO в качестве идентификатора и строку-заполнитель. Не опускайте строковое значение, иначе идентификатор не будет определен. Строковое значение может быть любым, поскольку оно нигде не будет использоваться.
    • Вторым параметром будет просто вызов CCommandManager::GetCmdImage(ID_EDIT_FIND). Это вернет изображение по умолчанию, используемое для отображения выпадающего списка. Если вы хотите использовать свое собственное изображение, вы можете создать его и вместо этого передать его идентификатор.
    • Третий параметр - это стили, которые вы хотите использовать. Они определены по адресу http://msdn.microsoft.com/EN-US/library/7h63bxbe(v=vs.110).aspx но вы можете использовать значение по умолчанию (CBS_DROPDOWNLIST) для начала.
  3. Переопределите метод CreateCombo CMFCToolBarComboBoxButton и добавьте его реализацию в CFindComboBoxButton. В этом методе создайте и верните указатель на CFindComboBox (производный класс CComboBox).

Я надеюсь, что это устранит всю путаницу, и вы должны быть на пути к тому, чтобы встроить пользовательский Combobox в панель инструментов.

Взгляните на пример VisualStudioDemo: http://msdn.microsoft.com/en-us/library/bb983983%28v=vs.90%29.aspx

вы можете найти реализацию CFindComboButton там

Другие вопросы по тегам