Utilisation de l'api Windows...

cs_welc Messages postés 14 Date d'inscription vendredi 2 novembre 2001 Statut Membre Dernière intervention 19 novembre 2003 - 2 nov. 2003 à 12:25
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 - 4 nov. 2003 à 01:49
Bonjour,

Je début en C#, et je m'entraine à utiliser DllImport avec l'api. Pour faire simple j'ai essayé de faire un appel MessageBoxA :

[DllImport("user32.dll",EntryPoint="MessageBoxA",ExactSpelling=true,SetLastError=true
)] private static extern int msgboite(int hWnd, String msg, String title, uint typemsg);

Puis sur l'événement d'un boutton :
msgboite(0,"Yahouuuuu","BeUEUE",0);

Sa marche bien... mais...
...voila j'ai 2 questions :

1) Dans la doc de l'api windows, il utilise des constantes pour définire le type de MessageBox, ex : MB_OK, MB_OKCANCEL, MB_YESNO, etc...
Comment faut il faire pour pouvoir les appliquer ? Il faut inclure Winuser.h et windows.h ? Oui mais comment ? Enfin je c pas...

2) Comment recupéré les hwnd (handle?) de mon application ou d'une fenêtre, composant...

Merci bien !

2 réponses

gg00xiv Messages postés 656 Date d'inscription mercredi 22 août 2001 Statut Membre Dernière intervention 11 mars 2005 13
2 nov. 2003 à 19:54
pour les constantes, tu les recherche sur le net ou autre et tu les crée dans ton code :
private const int MB_OK = 0;
private const int MB_WARNING = ...;

en prenant soin de bien laisser les meme valeurs que celles de l'API.

Pour récupérer le Handle (hWnd) d'une fenetre en c# il faut utiliser la propriété "Handle" justement de ta form.

this.Handle // si tu es dans le code de ta form.

Remarque:
Tu as mal implémenté la fonction MessageBoxA, le premier arguement n'est pas un int mais un IntPtr (Pointeur).
Et oui, en C++ le type HWND est un pointeur.

[Membre du laboratoire .NET de SUPINFO]
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
4 nov. 2003 à 01:49
POur les constantes , perso j'utilise un outil additionnel bien pratique :

http://www.news2news.com/vfp/w32constants.php

::|The S@ib|::
MVP C#.NET
0
Rejoignez-nous