C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Урок 30. Кнопка со списком на панели инструментов - создание / Уроки C++ .NET / Visual C++ .NET

Visual C++.NET
Урок 30. Кнопка со списком на панели инструментов - создание

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

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

Создайте SDI-заготовку (MFC, естественно) с помощью мастера. Все остальные параметры приложения можно оставить без изменений - значения по умочанию нам вполне подходят. Имя проекта задайте как combobox.

Добавьте на панель инструментов еще одну кнопку и что-нибудь нарисуйте на ней. Именно эту кнопку мы и превратим в кнопку со списком. Для тех, кто забыл - для этого переходим на вкладку Resource View, затем раскрываем дерево combobox.rc->Toolbar и двойным щелчком на IDR_MAINFRAME показываем редактор для панели инструментов. Идентификатор ID в окне свойств для этой кнопки задайте в ID_CBBUTTON.

Теперь займемся непосредственно кодом. Внесите в конец метода OnCreate класса CMainFrame такой код:

  ...
  //Задаем стиль для панели инструментов.
  m_wndToolBar.GetToolBarCtrl().SendMessage(TB_SETEXTENDEDSTYLE, 0,
    (LPARAM)TBSTYLE_EX_DRAWDDARROWS);
  //Получаем стиль нашей кнопки.
  DWORD dwStyle = m_wndToolBar.GetButtonStyle(m_wndToolBar.CommandToIndex(ID_CBBUTTON));
  //Прибавляем к стилю кнопки флаг TBSTYLE_DROPDOWN.
  dwStyle |= TBSTYLE_DROPDOWN;
  //Устанавливаем новый стиль для кнопки.
  m_wndToolBar.SetButtonStyle(m_wndToolBar.CommandToIndex(ID_CBBUTTON), dwStyle);
  return 0;
}

Смысл кода более-менее понятен из комментариев. Обратите внимание, что в коде мы пишем идентификатор нашей добавленной кнопки - ID_CBBUTTON. Ведь именно ее мы хотим превратить в кнопку со списком.

Откомпилируйте теперь проект. У вас последняя кнопка получилось с правой частью с треугольничком, на котором по идее можно щелкать. Правда, кнопка пока серая:

Серая кнопка со списком.

То, что кнопка серая - понятно: обработчика для нее пока нет. Добавим обработчик мы на следующем уроке.