Hallo
Ich habe eine Anwendung mit einer simplen pagecontrol und darauf ein paar Tabsheets.
In der Pagecontrol habe ich OwnerDraw auf TRUE gesetzt und zeichen / schreibe dann mit dem folgenden Code:
Code:
procedure TlcpOptionen.pcOptionsDrawTab(Control: TCustomTabControl;
TabIndex: Integer; const Rect: TRect; Active: Boolean);
var hs: String;
tp: TPoint;
begin
//Wir malen oben..
with pcOptions.Canvas do begin
//Wir füllen
brush.Color:= fHinten;
font.Color:= fText;
FillRect(Rect); //:-) des war nicht schwer...
hs:= pcOptions.Pages[TabIndex].Caption; //Überschrift
tp.X:= round( ( rect.Right - rect.Left - TextWidth(hs) ) * 0.5 + rect.Left);
tp.Y:= round( ( rect.Bottom - rect.Top - TextHeight(hs) ) * 0.5 + rect.Top);
TextOut(
tp.X,
tp.Y, hs); //Und Ausgeben
end;
end;
pcOptions ist das PageControl.
Wenn ich das ganze als
WIN32 Anwendung kompiliere, dann wird der Hintergrund vollflächig gefüllt. Kompiliere ich aber als WIN64, dann werden nur die Reiter gefüllt, der Rest nicht.
Irgendwelche Ideen?
Tomy