Deutsch
Forum

Probleme mit Create("hPic... und Resourcen.

 

Frank
Abbing

KompilierenMarkierenSeparieren
Cls
var shell&=UseDLL("SHELL32.DLL")
var pic&=Create("hPic",shell&,"#7")
Print shell&
Print pic&
WaitInput
End

Sollte dieser Code nicht ein Bitmap aus einem Icon aus der Shell32.dll generieren? Meldet mir immer "Bitmap nicht ladbar". Mit einem Bitmap anstelle eines Icons gehts.
An der Stelle finde ich die Doku auch etwas schwammig formuliert...
 
06.12.2008  
 




E.T.
Jetzt, wo du es sagst: das Problem hatte ich kürzlich auch erst.
Überleg...  Ach ja: Ich wollt meinem Fenster-Menü ein paar Bilder gönnen. Da bin ich auf die Idee gekommen, das ja eigentlich alle Bilder schon als Icon in meiner Dll liegen und bin an die selbe Grenze gestoßen wie du eben( das ein "hPic" eben kein Icon ausliest) .

Und andersherum, wollt ich ein hIcon nehmen: Kommt diese blöde API, um das Bild ins Menü "zu malen", wieder nich klar damit.
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
06.12.2008  
 




Frank
Abbing
Darum auch meine Kritik an der Doku. An der Stelle werden auch Icons genannt:


Folgende Bildformate werden unterstützt:

Bitmap (*.bmp, *.rle, *.dib)
Jpeg (*.jpg, *.jpe, *.jpeg)
Gif (*.gif)
Png (*.png)
Enhanced Metafile ( *.emf)
Metafile (*.wmf)
Icons (*.ico)
Cursor (*.cur)
 
06.12.2008  
 




E.T.
Ich denk, wir sollten das unter [...]  mit einreihen
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
06.12.2008  
 




Andreas
Miethe


Frank Abbing


Sollte dieser Code nicht ein Bitmap aus einem Icon aus der Shell32.dll generieren? Meldet mir immer "Bitmap nicht ladbar". Mit einem Bitmap anstelle eines Icons gehts.
An der Stelle finde ich die Doku auch etwas schwammig formuliert...


Hallo Frank,

finde ich nicht schwammig.

Zitat aus Hilfe
Typ > 0: S = Name einer Bitmapressource in externer Datei

Ich finde es geht klar daraus hervor, dass es eine Bitmapresoucre und keine Iconresource sein soll.
Ein bisschen verwirrend, muss ich zugeben, ist dabei die Bildformat-Unterstützung weiter unten.

Ich habe mir für Icons einen Workaround gebastelt.
KompilierenMarkierenSeparieren
Cls

SUBPROC Create.hIcoPic

    Parameters Res$,ID&
    Var pic& = Create("hNewPic", 32,32,0)
    Startpaint pic&
    DrawLibIcon Res$,ID&,0,0
    EndPaint
    Return Pic&

ENDPROC

Var Pic& = Create("hIcoPic","shell32.dll",7)
DrawPic pic&,10,10,-1
WaitInput
End
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
06.12.2008  
 




RGH
Hallo,

ja, die Hilfe könnte hier etwas eindeutiger sein und nochmal extra darauf hinweisen, dass sich die unterschiedlichen Formate auf das Laden von Dateien (N=-1) beziehen. Andererseits kommen die angegebenen Dateiendungen auch nur bei Dateien vor. ;)

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
06.12.2008  
 




Frank
Abbing
Die Daten in der Datei sind jedoch gleich.

@Andreas: Die Qualität der gemalten Icons ist allerdings so leider miserabel.
 
06.12.2008  
 



Vielleicht nicht so "miserabel", wenn man den Hintergrund zuvor auf hpic kopiert.
 
06.12.2008  
 




Frank
Abbing
iF
Vielleicht nicht so "miserabel", wenn man den Hintergrund zuvor auf hpic kopiert.


Teste es, aber sei nicht enttäuscht. Liegt einfach an der Transparenz, die nicht richtig übernommen wird.
 
06.12.2008  
 



Der schöne "Alias" am Rand, gell?

Da muss das hPic wohl 32 Bit "breit" sein, sodass Windows einmixt.

Du könntest aber auch eine Resample-Skalierfunktion von hPics z.B. per inlineASM einproggen.

Dann könnte man z.B. mit doppelter Größe zeichnen, und nach Runterresampling wäre "der" schöne Rand wieder vorhanden.
 
06.12.2008  
 




Frank
Abbing
In meinem speziellen Fall, wo es mir ja um die Icons aus der Shell32.dll geht, "kopiere" ich die Icons einfach via ImageList_Draw(Ex) aus der Systemimagelist (darin befinden sich auch alle Icons aus der shell32.dll). Absolut smooth. Ist dann sogar möglich, die Icons in (Popup)Menues zu benutzen, siehe Screenshots.
Auch für andere Icon-Resourcen empfehle ich eher den Umweg über eine Imageliste. Die Imagelist-Funktionen sind in der Lage Icons richtig transparent auf eine Bitmap zu malen. Ohne Umrechnungsfehler.

14 kB
Hochgeladen:06.12.2008
Ladeanzahl88
Herunterladen
17 kB
Hochgeladen:06.12.2008
Ladeanzahl74
Herunterladen
 
06.12.2008  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

3.408 Betrachtungen

Unbenanntvor 0 min.
Rainer Hoefs03.05.2023
iF13.09.2015
Tommy03.01.2014

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


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