Вниз
Скачать: CL | DM;

Меню с кнопкой закрытия документа   Найти похожие ветки 

← →
Переяслов Григорий ©   (2004-04-07 17:40) [0]

В программе реализован псевдо-многодокументный интерфейс. Есть некая сущность (аналог документа), когда она открывается, то в главное окно добавляются некоторые элементы. Всегда можно выбрать одну из сущностей и закрыть ее, используя специальную кнопку на тулбаре. Хотелось бы продублировать эту кнопку кнопкой, аналогичной кнопке закрытия документа. Эта кнопка должна быть в меню. Но в стандартное меню невозможно добавить никаких контролов. Как можно обойти эту проблему?


← →
Семен Сорокин ©   (2004-04-07 18:31) [1]

Это типа меню как в Delphi IDE?
если да, то TActionManager + TActionMainMenuBar (Delphi7\Demos\ActionBands)


← →
Ломброзо ©   (2004-04-07 21:55) [2]

Это типа надо просто положить на форму Rebar-CoolBar, смастерить RebarBand с фиксированной шириной, в него поместить хотя бы панель, на панели или отрисовывать системные кнопки функцией DrawFrameControl, или самому написать системные кнопки.  Я их отнаследовал от TPanel:

void __fastcall TSystemButton::Paint(void)
{
   TPanel::Paint();
   ULONG flag = 0;
   if (FPressed)
       flag = DFCS_PUSHED ;
   switch (FSystemButtonStyle)
   {
       case eMinimize:
           ::DrawFrameControl(Canvas->Handle, &Rect(0, 0, Width, Height), DFC_CAPTION, DFCS_CAPTIONMIN | flag);
           break;
       case eRestore:
           ::DrawFrameControl(Canvas->Handle, &Rect(0, 0, Width, Height), DFC_CAPTION, DFCS_CAPTIONRESTORE | flag);
           break;
       case eMaximize:
           ::DrawFrameControl(Canvas->Handle, &Rect(0, 0, Width, Height), DFC_CAPTION, DFCS_CAPTIONMAX | flag);
           break;
       case eClose:
           ::DrawFrameControl(Canvas->Handle, &Rect(0, 0, Width, Height), DFC_CAPTION, DFCS_CAPTIONCLOSE | flag);
           break;
   }
}


← →
Переяслов Григорий ©   (2004-04-08 09:31) [3]

Всем спасибо



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.033 c
8-1074489491
Disruptor
2004-01-19 08:18
2004.04.25
Ролловер


1-1081590998
CCh
2004-04-10 13:56
2004.04.25
Dll в системе


3-1080644592
Крутыш
2004-03-30 15:03
2004.04.25
Почему метод Locate срабатывает один раз.


3-1080793639
Badboy
2004-04-01 08:27
2004.04.25
QuickReport


8-1074444671
Хой
2004-01-18 19:51
2004.04.25
Рендеринг на рабочем столе (OpenGL)




   Наверх