Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.03;
Скачать: CL | DM;

Вниз

Как PageControl заставить измерить ширину tab a?   Найти похожие ветки 

 
Aleksandr.   (2004-09-20 19:18) [0]

PageControl у меня имеет OwnerDraw=true и обработчик на OnDrawItem. Когда Tab"ов у него больше одного, обработка срабатывает нормально. А вот когда только у одного Tab"a TabVisible=true, в обработчике наблюдается проблема - передаваемый в него Rect имеет какие-то размеры по умолчанию, которые конкретно у меня не вмещают по длине заголовок Tab"a. Никакого OnMeasureItem я у него не наблюдаю. Как заставить PageControl правильно отсчитать размеры этого Tab"a?

ЗЫ: Для любителей кричать: "А где код, зараза!":

procedure TPropertyForm.PageControlDrawTab(Control: TCustomTabControl;
 TabIndex: Integer; const Rect: TRect; TabActive: Boolean);
var
 x, y : integer;
 Col  : TColor;
begin
 PageControl.Canvas.FillRect(Rect);
 if TabActive then begin
   PageControl.Canvas.Brush.Color:=clWhite;
   PageControl.Canvas.Font.Color:=clBlue
 end;
 x:=Rect.Left+((Rect.Right-Rect.Left-PageControl.Canvas.TextWidth(PageControl.Pages[TabIndex].Caption)) div 2);
 y:=Rect.Top+((Rect.Bottom-Rect.Top-PageControl.Canvas.TextHeight("A")) div 2);
 Col:=PageControl.Canvas.Pen.Color;
 PageControl.Canvas.Pen.Color:=Canvas.Brush.Color;
 PageControl.Canvas.RoundRect(Rect.Left+1,Rect.Top+1,Rect.Right-1,Rect.Bottom-1,3,3);
 PageControl.Canvas.Pen.Color:=Col;
 PageControl.Canvas.TextOut(x,y,PageControl.Pages[TabIndex].Caption)
end;



 
Defunct ©   (2004-09-20 19:25) [1]

OwnerDraw := False


 
clickmaker ©   (2004-09-20 19:27) [2]


> ЗЫ: Для любителей кричать: "А где код, зараза!":

Блин, весь кайф обломал... Так хотелось крикнуть


 
Aleksandr.   (2004-09-20 19:36) [3]

Defunct ©  :

А мне нужен мой обработчик. Не нравится, когда на форме цвета новых стандартов закладки старого серого цвета. А без своего обработчика это никак.


 
clickmaker ©   (2004-09-20 19:42) [4]


> [3] Aleksandr.   (20.09.04 19:36)

TCM_SETMINTABWIDTH не помогает?


 
clickmaker ©   (2004-09-20 19:47) [5]

Как вариант можно еще подменить WindowProc у пэйджконтрола, ловить WM_MEASUREITEM


 
Aleksandr.   (2004-09-20 19:49) [6]

clickmaker ©  :

Спасибо, попробую!



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

Текущий архив: 2004.10.03;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.022 c
4-1093237731
Станислав
2004-08-23 09:08
2004.10.03
sendkeys


4-1093262504
Jenek
2004-08-23 16:01
2004.10.03
Помещение приложения в меню Windows


14-1095249703
yaJohn
2004-09-15 16:01
2004.10.03
Форумы по С++


14-1095146447
KSergey
2004-09-14 11:20
2004.10.03
Win2k и autoexec.bat


14-1095226182
КаПиБаРа
2004-09-15 09:29
2004.10.03
Как создаются большие проекты?