![]() |
nonVCL TabControl mit Dialoge aus Ressource unter WinXP
Hallo,
ich habe folgendes Problem. Ich lade aus den Ressourcen der Anwendung die Dialoge für ein Tabcontrol, dabei habe ich das Problem den Grauen Hintergrund des Formulars durchsichtig erscheinen zu lassen. Da bei Verwendung des Manifest unter WinXP dies relativ unschön aussieht. Habe schon folgendes versucht.
Delphi-Quellcode:
Hierbei wird das Formular nur Durchsichtig wenn es kein Parent vergeben wird, also sieht es immer noch so aus.
...
begin ... for i := 0 to length(hTabDlgs) - 1 do begin SetWindowLong(hTabDlgs[i], GWL_STYLE, DS_CONTROL or WS_CHILD ); SetParent(hTabDlgs[i], Wnd); SetWindowLong(hTabDlgs[i], GWL_EXSTYLE, GetWindowLong(hTabDlgs[i], GWL_EXSTYLE) or WS_EX_LAYERED); SetLayeredWindowAttributes(hTabDlgs[i], GetSysColor(COLOR_BTNFACE), 255, LWA_COLORKEY); end; end; ![]()
Delphi-Quellcode:
Hierbei wird alles Durchsichtig nur natürlich nicht die Controls. :(
var
FullRgn, ClientRgn, CtlRgn: THandle; procedure MakeTransparent(Handle: HWND); var NextChild: HWND; CtlX, CtlY: Integer; R: TRect; begin GetWindowRect(Handle, R); MapWindowPoints(HWND_DESKTOP, Handle, R, 2); with R do begin FullRgn := CreateRectRgn(Left, Top, Right, Bottom); ClientRgn := CreateRectRgn(Left, Top, Right, Bottom); CombineRgn(FullRgn, FullRgn, ClientRgn, RGN_DIFF); end; NextChild := GetTopWindow(Handle); while NextChild > 0 do begin GetWindowRect(NextChild, R); MapWindowPoints(HWND_DESKTOP, Handle, R, 2); if NextChild > 0 then with R do begin CtlX := Left; CtlY := Top; CtlRgn := CreateRectRgn(CtlX, CtlY, CtlX + (Right-Left), CtlY + (Bottom-Top)); CombineRgn(FullRgn, FullRgn, CtlRgn, RGN_OR); NextChild := GetNextWindow(NextChild, GW_HWNDNEXT); end; end; SetWindowRgn(Handle, FullRgn, True); end; ... begin ... for i := 0 to length(hTabDlgs) - 1 do begin SetWindowLong(hTabDlgs[i], GWL_STYLE, DS_CONTROL or WS_CHILD); SetParent(hTabDlgs[i], Wnd); MakeTransparent(hTabDlgs[i]); ... end; end; ... ![]() Kann man es auf irgendeinen weg erreichen das alles was grau ist verschwindet? Gruß Thomas |
Re: nonVCL TabControl mit Dialoge aus Ressource unter WinXP
Wie wäres es denn einfach die Client-Dialoge in ihrer Größe an den Clientbereich des Tabcontrols anzupassen. Das ist zumindest der übliche Weg. Dann wäre alles in diesem beige, siehe oben.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz