Deutsch
Stammtisch & Café

LoadImage.

 


Beschreibung:

Die Funktion LoadImage lädt einen Cursor, ein Icon oder ein Bitmap in den Speicher und gibt dessen Handle zurück.




Deklaration:

DEF @LoadImage(6) !USER32,LoadImageA




Parameter:

1.Parameter: Hier steht das Instanz-Handle des Moduls, aus dem das Bild geladen werden soll. Kann 0 sein, wenn das Bild aus einer Datei geladen wird und in Parameter 6 ‚$10’ vorhanden ist.
2.Parameter:
Wenn $10 definiert wude, steht hier die Adresse eines Strings, der den Dateinamen des Bildes enthält.
Wenn $10 nicht definiert wurde und in Parameter 1 ein Instanz-Handle definiert wurde, steht hier die Adresse eines Strings, der den Namen des Bildes in der Datei enthält.
Wenn $10 nicht definiert wurde und in Parameter 1 kein Instanz-Handle definiert wurde, steht in den unteren zwei Byte (Word) der Identifier des OEM Images, das geladen werden soll.
3.Parameter: Hier steht ein Flag für den Typ des Images, das geladen werden soll =>
$0 = Bitmap
$1 = Icon
$2 = Cursor
4.Parameter: Hier steht die gewünschte Breite des Bildes in Pixeln als Integer.
5.Parameter: Hier steht die gewünschte Höhe des Bildes in Pixeln als Integer.
6.Parameter: Flags die bestimmen, wie das Bild geladen werden soll. Flags können mit | addiert werden =>
-$0 = Lädt das Bild farbig.
-128 = Streckt das Bild nicht mit Parameter 4 und 5.
Folgende Flags gibt’s nicht unter WindowsNT =>
-$1 =Lädt das Bild nicht farbig.
-$40 = Lädt das Bild unter Verwendung der System Standartgrößen.
-$10 = Lädt ein Bild aus einer Bilddatei.
-$1000 = Ersetzt bestimmte Grauwerte durch Systemfarben.
-$20 = Nimmt den Farbwert des ersten Pixels des Bildes und ersetzt alle Pixel mit diesem Farbwert durch die Hintergrundfarbe des Fensters.



Rückgabewert:

Wurde die Funktion erfolgreich durchgeführt, wird das Handle des erzeugten Objektes zurückgeliefert. Bei Misserfolg 0.


Beispiele:

KompilierenMarkierenSeparieren
Def GetSysColor(1) !"USER32","GetSysColor"
DEF @LoadImage(6) !"USER32","LoadImageA"
SETTRUECOLOR 1
DECLARE ENDE%,x1%,y1%,sicher%,bild&
DECLARE HSCROLL1%,HWSTATUS&,HWSTATUS2&,Bild$
DECLARE VSCROLL1%,Hwscrollrech%,Vscrollrech%

PROC BILDLADEN

    Parameters bild$,x%,y%,hw&
    Declare wfb#,bild&,h&
    Dim wfb#,Add(Len(bild$),1)
    String wfb#,0=bild$
    Let h&=LoadImage(0,wfb#,0,x%,y%,$50)
    bild&=Control("STATIC","",$05000010E,0,0,x%,y%,hw&,2001,%hinstance)
    @SendMessage(bild&,$172,0,h&)
    Dispose wfb#
    return bild&

ENDPROC

PROC LADEN

    PARAMETERS BILD$
    MLoadBMP BILD$ Nur um die X und Y Werte zu ermitteln!
    X1%=%BmpX
    y1%=%BmpY
    destroywindow(bild&)
    BILDLADEN BILD$,X1%,Y1%,hwstatus&
    bild&=@&(0)
    hwstatus2&=@&(0)
    SetScrollRange hscroll1%,0,div(x1%,2)
    SetScrollRange Vscroll1%,0,div(y1%,2)
    SetScrollPos hscroll1%,0
    SetScrollPos vscroll1%,0
    Return bild&

ENDPROC

WINDOWSTYLE 63
WINDOWTITLE "TASTE F12 neues Bild laden"
WINDOW 236,190-501,311
CLS GETSYSCOLOR(15)
USEFONT "MS Sans Serif",13,0,0,0,0
SETDIALOGFONT 1
HSCROLL1% = CREATE("HScroll",%HWND,"",0002,0260,0490,0016)
VSCROLL1% = CREATE("VScroll",%HWND,"",0476,0002,0016,0256)
hwstatus&=Control("STATIC","",$54001100,2,2,472,255,%hwnd,2000,%hinstance,512) Wenn kleinere Profanversion, bitte 512 entfernen!!!
Bild$=""
EnableWindow HSCROLL1%,0
EnableWindow VSCROLL1%,0

WHILENOT ENDE%

    WAITINPUT

    If @EQU(%KEY,2)

        LET ENDE%= 1

    ELSEIF EQU(%SCANKEY,123)

        LET BILD$=@LOADFILE$("ÖFFNE:","*.BMP")

        IF neq$(Bild$,"")

            LADEN Bild$
            bild&=@&(0)

        ELSE

            DestroyWindow (Bild&)
            EnableWindow HSCROLL1%,0
            EnableWindow VSCROLL1%,0

        Endif

        ENDIF    IF NEQ$(BILD$,"")
        EnableWindow HSCROLL1%,1
        EnableWindow VSCROLL1%,1

        IF GETFOCUS(HSCROLL1%) HScroll

            hwscrollrech%=getscrollpos(hscroll1%)-getscrollpos(hscroll1%)*2
            setwindowpos hwstatus2&=hwscrollrech%,vscrollrech%-x1%,y1%,0
            REPAINT
            setfocus(%hwnd)

        ELSEIF GETFOCUS(VSCROLL1%) VScroll

            Vscrollrech%=getscrollpos(Vscroll1%)-getscrollpos(Vscroll1%)*2
            setwindowpos hwstatus2&=hwscrollrech%,Vscrollrech%-x1%,y1%,0
            REPAINT
            setfocus(%hwnd)

        ENDIF

    ENDIF

WEND

 
08.03.2005  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

2.056 Betrachtungen

Unbenanntvor 0 min.
Rainer Hoefs02.05.2023
Jörg Sellmeyer24.06.2018
Uwe Lang03.09.2012
Michaeal21.03.2012

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

unbekannt (1x)


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