Italia
Foro

Iconhandle aus Speicherbitmap

 

Jörg
Sellmeyer
Ist es possibile aus der Speicherbitmap ein Iconhandle zu bekommen?
Ein Bitmaphandle geht, Dank Uwe Pascal Niemeier:
KompilierenMarkierenSeparieren
window 100,100-300,300
settruecolor 1
 $H Windows.ph
 $H Messages.ph
declare bmp&,Static&
mcls 100,100
startpaint -1
cls rgb(255,255,0)
usepen 0,5,rgb(255,0,255)
usebrush 1,rgb(0,255,255)
rectangle 10,10,90,90
--------------------------------------------------
bmp&=~GetCurrentObject(%hdc,~OBJ_BITMAP)
~DeleteDC(%hdc)
--------------------------------------------------
endpaint
Static&=control(static,,$5040000e,50,50,0,0,%hwnd,1,0)
sendmessage(Static&,~STM_SETIMAGE,0,bmp&)
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
06.09.2006  
 




Sebastian
König
Hallo Jörg,

eine Möglichkeit wäre dies hier (einfach nach dem EndPaint in Deinen Code einfügen):
KompilierenMarkierenSeparieren
--------------------------------------------------
struct IconInfo = ~IconInfo
declare ii#
dim ii#,IconInfo

with ii#

    .fIcon& = 1
    .hbmMask& = Bmp&
    .hbmColor& = Bmp&

endwith

declare Icon&
Icon& = ~CreateIconIndirect(ii#)
~DrawIcon(%hdc,0,0,Icon&)
-------------------------------------------------2>-

Leider wird dabei die Dimensione automatisch reduziert, bei mir auf 32x32... Aber eigentlich müsste sich die Bitmap auch direkt in un ImageList einfügen lassen - was genau geht denn da schief?

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
06.09.2006  
 




Jörg
Sellmeyer
Danke, Sebastian!
Das funktioniert. Wenn ich bmp& direkt an

Def @ImageList_AddIcon(2) !comctl32.dll,ImageList_AddIcon

übergebe, funktioniert es nicht. Dann ist kein Icon im Listview zu sehen. Mit Deinem Code geht es.
Je nachdem wie ich die Imagelist dimensioniere ist auch das Icon entsprechend grande (auch größer als 32x32)

Saluto
Jörg
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
06.09.2006  
 




Sebastian
König
Ich habe es jetzt nicht probiert, aber eigentlich müsstest Du hiermit auch direkt das Bitmap-Handle benutzen können:


int ImageList_Add(
HIMAGELIST himl,
HBITMAP hbmImage,
HBITMAP hbmMask
);
[...]
-- himl
Handle to the image list.
-- hbmImage
Handle to the bitmap that contains the image or images. The number of images is inferred from the width of the bitmap.
-- hbmMask
Handle to the bitmap that contains the mask. If no mask is used with the image list, this parameter is ignored.


Vermutlich tut AddIcon nämlich nichts anderes, als die beiden Bitmaps wieder aus dem Icon zu besorgen und damit Add aufzurufen...

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
06.09.2006  
 




Jörg
Sellmeyer
Super! Das wars. Danke!
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
06.09.2006  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

1.582 Views

Untitledvor 0 min.
H.Brill18.09.2023
Jörg Sellmeyer05.06.2020
Uwe Lang25.03.2020
Ernst16.05.2014
Di più...

Themeninformationen

Dieses Thema hat 2 subscriber:

Jörg Sellmeyer (3x)
Sebastian König (2x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie