|  | 
|   | 
 | 
  | 
 Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Bitmaps: *.JPG und *.GIF (auch animierte GIFs) mit der ATL.DLL anzeigen
von Michael Wodrich
-------------------- für das HTML-Control
 $H Windows.ph
Def Atlaxwininit(0) !atl.dll,AtlAxWinInit
Def Atlaxcreatecontrol(4) !atl.dll,AtlAxCreateControl
Declare Atl&
Atl&=UseDLL(atl.dll)
Atlaxwininit()
--------------------
mehrere Parameter zurückgeben: geht über eine Struktur am Besten
die vorderen Felder sind die Parameter, die letzten beiden sind die Rückgabewerte
Struct PictBoxStru = hWnd&, X&,Y&,Width&,Height&, DlgID&, BildPfad$(260), Box&, Web&
hier die Prozedur
Proc CreatePictureBox
    Parameters PictBoxParms&
    Declare WebPfad$
    für v7.0 ist ein kleiner Trick erforderlich,
    da die Bereiche sonst nicht strukturiert ansprechbar sind
    Declare PictBoxParms#,Save&
    Dim PictBoxParms#, PictBoxStru  Bereich mit Struktur einrichten (Zeiger auf strukturierte Daten)
    Save& = PictBoxParms#      diesen Zeiger sichern
    PictBoxParms# = PictBoxParms&  den übergebenen Zeiger (auf Box1# und Box2#) mit der Struktur versehen
    hier kann ich jetzt auf die übergebenen Daten zugreifen
    With PictBoxParms#
        .Box& = Control(STATIC,,$50000000,.X&,.Y&,.Width&,.Height&,.hWnd&,.DlgID&,%hInstance,$200)
        WebPfad$ = file:/// + .BildPfad$
        .Web& = Control(AtlAxWin,WebPfad$,$50300000,0,0,Width(.Box&),Height(.Box&),.Box&,0,0)-HTML-Contol anlegen
    EndWith
    PictBoxParms# = Save&  Original-Bereich wiederherstellen
    Dispose PictBoxParms#  und aus dem Speicher entfernen
EndProc
-- Hauptprogramm --
Window 0,0-800,600 640,480
Window 0,0-640,480 640,480
Usermessages 16
2 Bereiche für die Parameter und Rückgabewerte einrichten
Declare Box1#, Box2#
Dim Box1#, PictBoxStru
Dim Box2#, PictBoxStru
die Bereiche füllen
With Box1#
    .hWnd&  = %hWnd
    .X&    = 10
    .Y&    = 10
    .Width&  = 200
    .Height& = 200
    .DlgID&  = 2000
    .BildPfad$ = LoadFile$ (Bild laden!,Bilddateien (JPG,JPEG,GIF)|*.JPG;*.JPEG;*.GIF)
    .Box& - wird in der CreatePictureBox zugewiesen (der STATIC-Rahmen)
    .Web& - wird in der CreatePictureBox zugewiesen (das HTML-Control)
EndWith
With Box2#
    .hWnd&  = %hWnd
    .X&    = 220
    .Y&    = 10
    .Width&  = 200
    .Height& = 200
    .DlgID&  = 2001
    .BildPfad$ = LoadFile$ (Bild laden!,Bilddateien (JPG,JPEG,GIF)|*.JPG;*.JPEG;*.GIF)
    .Box& - wird in der CreatePictureBox zugewiesen (der STATIC-Rahmen)
    .Web& - wird in der CreatePictureBox zugewiesen (das HTML-Control)
EndWith
aufrufen der Prozedur
CreatePictureBox Box1#
CreatePictureBox Box2#
Hauptschleife
While 1
    Waitinput
    Case %Umessage=16:Break
Endwhile
Freigabe der beiden Controls je Aufruf
Destroywindow(Box1#.Web&)
Destroywindow(Box1#.Box&)
Destroywindow(Box2#.Web&)
Destroywindow(Box2#.Box&)
die Bereiche nicht vergessen
Dispose Box1#
Dispose Box2#
die DLL wieder entladen
FreeDLL Atl&
End
 |  
  | 
|   | 
 |  | 
|   | 
 
 
  |