| |
|
|
|
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
|
|
|
| |
|
|