Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Уроки по Visual C++ (MFC, платформа .NET)


Информационный Канал Subscribe.Ru

Уроки по Visual C++.NET. Рассылки сайта progs.biz
Рассылка № 78
 
Начало > Visual C++.NET > MFC > Урок 30

Боресков А. В. Графика трехмерной компьютерной игры на основе OpenGL.

Заказать на Озоне

Подробнее


Полные версии уроков (с картинками): урок 30.

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. Ведь именно ее мы хотим превратить в кнопку со списком.

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

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

Рассылки сайта progs.biz
Visual C++, MFC
C# и .NET
VB.NET
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX new!
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


PARKING.RU. Качественный ВИРТУАЛЬНЫЙ ХОСТИНГ на платформе Windows(r): поддержка NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый ВЫДЕЛЕННЫЙ ХОСТИНГ на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru


Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2004 сайт progs.biz
© 2002-2004 Алексеев Игорь

http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.lessonsfromai
Отписаться

В избранное