Re: Afficher un DXF en utilisant GDI+ et DotNet |
Sujet: Re: Afficher un DXF en utilisant GDI+ et DotNet par gpowerz sur 20/4/2006 13:09:59 J'ai voulu tester GDIPlus directement dans Windev en appellant directement la FlatAPI les fonctions repondent bien mais il se s'affiche rien dans la fenêtre Windev (champ Image,HDC de l'écran, HDC de la fenêtre). J'ai tout essayé mais rien de rien et pourtant j'ai bien un token valide voici les bouts de code qui ont l'air correct (car le même code fonctionne en VB) PROCEDURE Constructeur(HDC=Null,Ver=1) :Hlib = ChargeDLL("gdiplus.dll") :GDIPlusStartUp(Ver) :GdiCreateFromHDC(HDC) PROCEDURE GDIPlusStartUp(Version) h est un entier s est un Variant = Null Token est un entier Status est un entier gdiplusstartout est un Variant :Version = Version :GdiIN:GdiplusVersion = :Version :GdiIN:DebugEventCallback = Null :GdiIN:SuppressBackgroundThread = 0 :GdiIN:SuppressExternalCodecs = 0 //ChargeDLL("gdiplus.dll") gdiplusstartout=Null :GStatus = AppelDLL32("gdiplus.dll","GdiplusStartup",&:hToKen,&:GdiIN,gdiplusstartout) Trace("token="+:hToKen+" status="+:GStatus) PROCEDURE GdiCreateFromHDC(HDC) Ret est un entier SI :GStatus <>0 ALORS RETOUR :hDC = HDC Ret =AppelDLL32("gdiplus.dll","GdipCreateFromHDC",:hDC,&:GpGraphics) .... PROCEDURE GdipFillRectangle(X1,Y1,X2,Y2,pHBrush=0) hBrush est un entier Ret est un entier pX1 est un entier sur 4 octets = X1 pY1 est un entier sur 4 octets = Y1 pX2 est un entier sur 4 octets = X2 pY2 est un entier sur 4 octets = Y2 SI :GStatus <>0 OU :GpGraphics=0 ALORS RETOUR SI pHBrush = 0 ALORS hBrush = :hBrush SINON hBrush = pHBrush Ret = API("gdiplus.dll","GdipFillRectangle",:GpGraphics,hBrush,pX1,pY1,pX2,pY2) //Ret = AppelDLL32("gdiplus.dll","GdipCreateSolidFill",0x2000FF,&:hBrush) //ret = AppelDLL32("gdiplus.dll","GdipFillRectangle",:GpGraphics,:hBrush,0,0,1000,1000) Trace("ret="+Ret+" hbrush="+hBrush ) |