www.adept7.kiev.ua
| Форум| Гостевая| Ссылки| Программы| Исходные тексты| Наши партнеры.|
   
| Главная| Рассылки| Услуги| Библиотека| Новости| Авторам| Программистам| Студентам|
delphi c++ assembler
  http://tikitak.narod.ru ---- Главная страница сайта

Шаг 18 - Панель инструментов

Создание проекта

Дополняем Step1. В файле ресурсов необходимо создать панель инструментов. Для этого перейти на вкладку Resource и Меню Insert, далее New Resource, из списка выберите панель инструментов, и добавьте 2 кнопки.

Создаем код

Добавляем в класс рамки окна класс панели инструментов
class CMainWnd : public CFrameWnd
{
  ..............
  CToolBar     my_ToolBar;      // Моя панель 
  ................
};
И в процедуру OnCreat для CMainWnd код для создания
int CMainWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
 ................
 my_ToolBar.Create(this);  
 my_ToolBar.LoadToolBar(IDR_TOOLBAR1);
 my_ToolBar.SetBarStyle(my_ToolBar.GetBarStyle()  | CBRS_SIZE_DYNAMIC); 
 my_ToolBar.EnableDocking(CBRS_ALIGN_ANY);
 EnableDocking(CBRS_ALIGN_ANY);
 DockControlBar(&my_ToolBar); 
 ..............
 return TRUE;
}
Перенесем элементы управления ниже
CMainWnd::CMainWnd()
{
 Create(NULL,"Step1",WS_OVERLAPPEDWINDOW,rectDefault,NULL,NULL);
 MyStatic = new CStatic();
 MyStatic->Create("MyStatic",WS_CHILD|WS_VISIBLE|SS_CENTER,
         CRect(10,100,100,150),this);
 MyButton = new CMyButton();
 MyButton->Create("MyButton",WS_CHILD|WS_VISIBLE|SS_CENTER,
         CRect(120,100,220,150),this,IDC_MYBUTTON);
 MyEdit = new CEdit();
 MyEdit->Create(WS_CHILD|WS_VISIBLE|WS_BORDER,
         CRect(240,100,340,150),this,IDC_MYEDIT);
}

Описание

Создаем класс панели инструментов в классе рамки окна. Как и все элементы панель инструментов необходимо создать. Для её создания мы выбрали место OnCreate, на мой взгляд это не самое плохое место.

При создании требуется указать окно владельца. Естественно в нашем случае рамка окна, this сам за себя говорит.

Далее мы читаем панель из ресурсов. Это так знакомо !

  //для меню
  m_wndMenu.LoadMenu(IDR_MENU1);
  SetMenu(&m_wndMenu);
  // для диалоговой панели
  CDialog about(IDD_DIALOG1);
  about.DoModal();
  ............. 
SetBarStyle Мы унаследовали от папы CControlBar, мы к текущим стилям добавляем динамический размер.

Следующей командой разрешаем её причаливание. CBRS_ALIGN_ANY - причаливать в любое место, а могли и не давать такой свободы.

И необходимо разрешить "причалу" принимать панель. И в конце силовое причаливание, для начала.

Запускайте, после всех необходимых процедур. Потаскайте панель, причальте туда, сюда. Работает !!! Как у Всех !!!

Естественно необходимо проверять, создалась панель или нет, прочиталась или нет. Не Забывайте.


Шпаргалка

Обьявить класс панели
class CMainWnd : public CFrameWnd
{
  ..............
  CToolBar     my_ToolBar;      
  ................
};
Создать и прочитать из ресурсов
 my_ToolBar.Create(this);  
 my_ToolBar.LoadToolBar(IDR_TOOLBAR1);
Стиль и тип причала
 my_ToolBar.SetBarStyle(my_ToolBar.GetBarStyle()  | CBRS_SIZE_DYNAMIC); 
 my_ToolBar.EnableDocking(CBRS_ALIGN_ANY);
Для рамки окна разрешить принимать суда и панель завести в порт
 EnableDocking(CBRS_ALIGN_ANY);
 DockControlBar(&my_ToolBar); 


Предыдущий Шаг | Следующий Шаг | Оглавление

By Artem.
Используются технологии uCoz
 

Rambler's Top100 Rambler's Top100

©  Adept Design Studio

Используются технологии uCoz