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

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


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

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

Боресков А. В. Графика трехмерной компьютерной игры на основе OpenGL.
Боресков А. В. Графика трехмерной компьютерной игры на основе 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
Отписаться

В избранное