Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Transparenten Hintergrund bei Bitmap auf Resource Dialog (https://www.delphipraxis.net/123741-transparenten-hintergrund-bei-bitmap-auf-resource-dialog.html)

Viktorii 7. Nov 2008 13:55


Transparenten Hintergrund bei Bitmap auf Resource Dialog
 
Hallo zusammen.
Mittlerweile kann ich, dank dieses tollen Forums :dp:, einigermaßen mit Dialogen aus einer Resourcen Datei umgehen. :thumb:

Jetzt habe ich noch eine Sache bei meinem Dialog. Ich möchte gerne dass der Hintergrund meines Bitmaps transparent ist, so wie ich es mit VCL auch machen kann. Leider bekomme ich das nicht hin. Mein .res Datei sieht so aus:


Code:
1 DIALOG 0, 0, 225, 50
STYLE DS_CENTER | WS_VISIBLE | WS_CAPTION
CAPTION "Information"
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
FONT 8, "MS SHELL DLG"
{
   CONTROL 2, 1, STATIC, SS_BITMAP | WS_CHILD | WS_VISIBLE, 5, 5, 40, 40 
   CONTROL "Informations Text.", 2, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 50, 15, 150, 30 
}
Leider wird der Hintergrund immer weiss angezeigt. Wie mache ich es richtig?


Noch ne kleine Zusatzfrage: Die Angaben zu Breite und Höhe der Elemente scheinen nicht in der Einheit Pixel zu sein. Bei meinem Fenster ist die Angabe hier 225, 50 aber mein Dialog ist nachher etwa 300, 100 groß. Ähnliches gilt für die Componenten auf meinem Dialog. Wieso ist das so?

Vielen Dank

nicodex 7. Nov 2008 14:05

Re: Transparenten Hintergrund bei Bitmap auf Resource Dialog
 
Zitat:

Zitat von Viktorii
Wieso ist das so?

Die Angaben sind in logischen Dialogeinheiten (DLU).
Warum das so ist: http://msdn.microsoft.com/en-us/library/bb847924.aspx

turboPASCAL 7. Nov 2008 15:08

Re: Transparenten Hintergrund bei Bitmap auf Resource Dialog
 
Hi,

Btr. Bitmap:

Du arbeitest hier auf API-Basis, Transparanzen in Bitmaps sind (hier) nicht vorgesehen.
Wozu auch, man nuzt da zu Icons. Wenn du nun dies dennoch mit Bitmaps machen möchtest
musst selbst Functionen dafür schreiben.

Viktorii 10. Nov 2008 08:57

Re: Transparenten Hintergrund bei Bitmap auf Resource Dialog
 
Liste der Anhänge anzeigen (Anzahl: 4)
Das mit der Transparenz klappt schon mal, vielen Dank.

Allerdings wird komischerweise die Größe des Icons nicht richtig dargestellt. Ich mache dafür mal keinen neuen Thread auf...

Ich habe die res Datei mit XN Resource Editor erstellt und das Icon hinzu gefügt. Hier sieht das auch noch richtig aus (siehe XNResEditor.JPG). Aber anscheinend ist das hier nicht wirklich WYSIWYG.


In meiner Application und im ResHacker wird das Icon kleiner (scheint 32*32 zu sein) dargestellt (siehe ResHackerDialog.JPG). Das Icon wird hier im Res Hacker unter Icon richtig dargestellt (siehe ResHackerIcon.JPG) aber unter IconGroup (siehe ResHackerIconGroup.JPG) genauso 'falsch' wie auf dem Dialog selber...

Wie bekomme ich das Icon jetzt in seine richtige Größe?

Vielen Dank.

turboPASCAL 10. Nov 2008 09:27

Re: Transparenten Hintergrund bei Bitmap auf Resource Dialog
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ja, die Erklärung ist einfach. Daran Schult ist die "alte" API bei der fest gelegt wurde das
die Standardgrösse eines Icons 32x32 beträgt. (so zusagen)
Ohne selbst das Zeichnen in die Hand zu nehmen wirds nix.

Lade das Icon mit LoadImage() und zeichne es im WM_PAINT mit DrawIconEx().



Hier eine Demonstration:


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:30 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