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 Das 48x48 Icon auslesen... (https://www.delphipraxis.net/50740-das-48x48-icon-auslesen.html)

FriFra 30. Jul 2005 21:13


Das 48x48 Icon auslesen...
 
Wie komme ich an das 48x48 Icon meiner Anwendung heran um es in eine Bitmap zu kopieren?

Olli 30. Jul 2005 21:19

Re: Das 48x48 Icon auslesen...
 
Wie hast du es denn eingebunden? Normalerweise kannst du auch hier mit MSDN-Library durchsuchenLoadIcon() das ganze Teil in ein HICON laden und dieses mit MSDN-Library durchsuchenDrawIcon() in einen Memory-DC (MSDN-Library durchsuchenCreateCompatibleDC()) malen, wo du vorher dein Bitmap-Handle reinselektiert (MSDN-Library durchsuchenSelectObject()) hast

FriFra 30. Jul 2005 21:29

Re: Das 48x48 Icon auslesen...
 
Ich hab es mal so probiert:
Delphi-Quellcode:
DrawIcon(Image1.Picture.Bitmap.Canvas.Handle,2,2,Application.Icon.Handle);
Es kommt halt immer nur das 32x32... Wenn ich das Icon-Handle über LoadIcon ermittle kann ich ja auch nur entweder auf das 16x16 oder das 32x32 zugreifen. Wie komme ich denn damit an das Handle des 48x48?

Olli 30. Jul 2005 21:35

Re: Das 48x48 Icon auslesen...
 
Aha, war mir neu. Ja der Canvas ist ja quasi der DC.

Schonmal MSDN-Library durchsuchenCreateIconFromResourceEx() probiert?

Cicaro 24. Aug 2005 10:14

Re: Das 48x48 Icon auslesen...
 
Möglicherweise kann dir auch DrawIconEx() helfen. Damit lässt sich die Breite und Höhe des gezeichneten Icons festlegen. Allerdings sieht das Resultat (wenn man ein mit LoadIcon() geladenes 48x48 Icon zeichnet) dann so aus, als ob das Icon einmal zu 32x32 gestaucht und hinterher zu 48x48 gestreckt wurde.

Das Problem liegt also IMHO beim Laden der Icons.

Olli 24. Aug 2005 10:19

Re: Das 48x48 Icon auslesen...
 
MSDN-Library durchsuchenLoadImage mit Typ IMAGE_ICON schon getestet? Auf Win9x soll das zwar nicht sonderlich perfekt funktionieren, aber immerhin. Ansonsten StretchBlt() ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz