Pb appel API en VS2003

cs_baz187rem Messages postés 78 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 21 juin 2010 - 22 mai 2008 à 19:36
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 22 mai 2008 à 21:27
Bonjour à tous !

 J'essaie tant bien que mal a utiliser les api win32 sur Visual studio 2003. J'ai beau les déclarer tout est ok, je les utilise correctement et pourtant rien ne se passe.

 Je prend pour exemple :

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
hWnd = FindWindowA(vbNullString, Me.Name)
hRgn = CreateEllipticRgn(5, 5, 400, 400)
SetWindowRgn(hWnd, hRgn, True)
DeleteObject(hRgn)
End Sub

J'essaie juste de faire une form en rond comme je le ferai sur excel. Rien ne se passe...
J'ai essayer différent appel pour la déclaration des apis c'est a dire dans un module nommé API en public les fonctions appelées ou alors a l'intérieur du code de la form des simples déclares, et aussi des déclare de la facon suivante :


<DllImport("GDI32.DLL", EntryPoint:="CreateEllipticRgn", SetLastError:=True, _ CharSet:=CharSet.Unicode, ExactSpelling:=True, _ CallingConvention:=CallingConvention.StdCall)> _


Public Shared Function _


CreateEllipticRgn(ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long


End Function


Que se passe-t-il ? Si quelqu'un peut m'aider car ce qui m'intéresserait c'est d'essayer de faire sans feuille un cercle sur lequel un rond tourne autour (un peu comme sur la WII) et tout ca en essayant d'utiliser les apis Getpixel, setpixel, (récupéré la résolution de l'écran...)

Merci beaucoup pour l'aide que vous pourrez m'apporter

4 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
22 mai 2008 à 19:47
salut,

pas besoin d'importer la dll, la fonction est dans ton framework :
System.Drawing.Region

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
22 mai 2008 à 20:07
Attention, en .Net le type de variables à changer.

Tout ce qui était déclaré en Long en VB6 doit etre déclaré en Integer en .Net, c'est le cas pour les api windows.

Et comme le dit Mortalino, bon nombres de fonctions de l'Api windows sont déjà intégrées dans .Net sous forme de classes et de méthodes

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
cs_baz187rem Messages postés 78 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 21 juin 2010 1
22 mai 2008 à 21:21
Vous voulez dire que dans le framework 1.1 on trouve déjà des choses pour faire des régions ? Y'a pas des tutos ou des exemples par hasard ?

Merci encore je vais essayer en les passants en integer voir ce que cela donne
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
22 mai 2008 à 21:27
je ne sais pas ce qu'il en est sur les frameworks, je ne les connais pas encore. Mais j'ai L'API guide pour vb6, et il s'y trouve les équivalent Dot Net :
http://logiciel.codes-sources.com/logiciels/API-Guide-197.aspx

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
Rejoignez-nous