Вниз
Скачать: 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 вся ветка

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



Память: 0.46 MB
Время: 0.02 c
3-1094639300
DBL
2004-09-08 14:28
2004.10.03
Импорт (добавление)


4-1093360437
Makhanev A.S.
2004-08-24 19:13
2004.10.03
Откуда здесь AV?


14-1095169635
PVOzerski
2004-09-14 17:47
2004.10.03
Что с анкетой?


3-1094472793
СергейП
2004-09-06 16:13
2004.10.03
DB контролы


14-1095408469
Baks
2004-09-17 12:07
2004.10.03
Календарик




   Наверх