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

Вниз

Отрисовка метки и FocusRect   Найти похожие ветки 

 
jack128 ©   (2004-11-03 04:59) [0]

День добрый.
Есть такой код:

constructor TSchemeLabel.Create(AOwner: TSchemeElement);
begin
 inherited;
 FLabel := TLabel.Create(nil);
 FLabel.Transparent := True;
end;

procedure TSchemeLabel.Draw(ACanvas: TCanvas);
begin
 MoveWindowOrg(ACanvas.Handle, FLabel.Left, FLabel.Top);
 try
   FLabel.Perform(WM_PAINT, Integer(ACanvas.Handle), 0);
 finally
   MoveWindowOrg(ACanvas.Handle, -FLabel.Left, -FLabel.Top);
 end;
end;


Все хорошо, метка нормально отрисовывается, но есть но..

На той же канве нужно отрисовать FocusRect, а вот этот прямоугольник не рисуется. Рисую так:

   with SchemeFrame.PaintBox.Canvas do
   begin
     Pen.Mode := pmCopy;
     Pen.Style := psSolid;
     Pen.Color := clBlack;
     Brush.Style := bsSolid;
     Brush.Color := SchemeFrame.Color;
     DrawFocusRect(SelRect);
   end;
 Если не рисовать на канве TSchemeLabel, то отрисовка проходит нормально. Более того, если положит на SchemeFrame обычную метку, то все тоже отлично рисуется..

Может у кого есть какие нить соображения??


 
code2k ©   (2004-11-03 16:19) [1]

up


 
jack128 ©   (2004-11-05 15:44) [2]

мдя.  В общем забил я на попытки понять что происходит... Сохраняю контекст и не мучаюсь..

var
 SavedDC: Integer;
begin
 SavedDC := SaveDC(ACanvas.Handle);
 try
   MoveWindowOrg(ACanvas.Handle, FLabel.Left, FLabel.Top);
   FLabel.Perform(WM_PAINT, Integer(ACanvas.Handle), 0);
 finally
   RestoreDC(ACanvas.Handle, SavedDC);
 end;
end;


 
Rem ©   (2004-11-05 16:27) [3]

А зачем Вам вообще FLabel?


 
Rem ©   (2004-11-05 16:36) [4]

И что такое SelRect? Он попадает в область рисования?



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

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

Наверх




Память: 0.47 MB
Время: 0.026 c
1-1099495453
Виктор
2004-11-03 18:24
2004.11.21
Добавить в PageControl TabSheet из программы.


1-1099764695
MUHAMOR
2004-11-06 21:11
2004.11.21
AstonShell


14-1099218854
Pat
2004-10-31 13:34
2004.11.21
.NET и драйвера


8-1093100300
dzmitry[li]
2004-08-21 18:58
2004.11.21
нарисовать на bitmap линию на основе шаблона


14-1099743026
BoS | Snake
2004-11-06 15:10
2004.11.21
Народ , неед хелп , кто в Lisp шарит...