begin process at 2008 05 12 06:26:00
1 170 146 membres
50 nouveaux aujourd'hui
13 956 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

FORMULAIRE ARRONDI


Information sur la source

Catégorie :API-OLE Classé sous : formulaire, elliptique, arrondi, api Niveau : Débutant Date de création : 05/10/2004 Date de mise à jour : 18/07/2006 09:01:00 Vu : 5 181

Note :
Aucune note

Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

Description

Juste une utilisation de l'API Win32 pour créer un formulaire elliptique

Source

  • * arrondir le form
  • * ce bout de code doit apparaitre dans l'Init du formulaire
  • Local nhWnd, nWidth, nHeight, hRegion
  • * dans gdi32
  • Declare Integer CreateEllipticRgn In gdi32 ;
  • Integer X1 , Integer Y1 , Integer X2 , Integer Y2
  • Declare Integer DeleteObject In gdi32 Integer hObject
  • * dans user32
  • Declare Integer SetWindowRgn In user32 ;
  • Integer HWND, Integer hRgn , Integer bRedraw
  • nhWnd = This.HWnd
  • nWidth = This.Width && vous pouvez changer le rapport ici (en divisant par 2, 3 ...)
  • nHeight = This.Height && de même qu'ici
  • hRegion = CreateEllipticRgn(0, 0, nWidth, nHeight)
  • SetWindowRgn(nhWnd, hRegion, 1)
  • * on relache
  • DeleteObject(hRegion)
  • Clear DLLs "CreateEllipticRgn","SetWindowRgn"
* arrondir le form
* ce bout de code doit apparaitre dans l'Init du formulaire

Local nhWnd, nWidth, nHeight, hRegion

* dans gdi32
Declare Integer CreateEllipticRgn In gdi32 ;
        Integer X1 , Integer Y1 , Integer X2 , Integer Y2
Declare Integer DeleteObject In gdi32 Integer hObject
* dans user32
Declare Integer SetWindowRgn In user32 ;
        Integer HWND, Integer hRgn , Integer bRedraw

nhWnd = This.HWnd
nWidth = This.Width && vous pouvez changer le rapport ici (en divisant par 2, 3 ...)
nHeight = This.Height && de même qu'ici
hRegion = CreateEllipticRgn(0, 0, nWidth, nHeight)
SetWindowRgn(nhWnd, hRegion, 1)
* on relache
DeleteObject(hRegion)
Clear DLLs "CreateEllipticRgn","SetWindowRgn"

Conclusion

J'ai testé ce code sur mon exemple précédent (l'écran d'attente style matrix).
Effet ludique garanti.
05 octobre 2004 16:34:54 :
prise en compte de la remarque de BruNews
06 octobre 2004 14:50:48 :
correction d'un typo dans le titre
18 juillet 2006 09:01:00 :
DeleteObject sur le hRegion comme suggéré :)
  • signaler à un administrateur
    Commentaire de BruNews le 05/10/2004 16:01:43 administrateur CS

    Salut,

    on ne libere pas le memoire dans Foxpro, y a-t-il un garbagecollector en sortie de procedure ?
    Normalement, a tout appel Createxxx() de la GDI devrait correspondre un DeleteObject() liberateur.

    ciao...

  • signaler à un administrateur
    Commentaire de FredArmoni le 05/10/2004 16:07:40 administrateur CS

    normalement oui mais tout ça ce fait en quittant l'appli.
    Ceci dit, il ne s'agit que d'un pointeur vers une fonction API.

    Sinon, on peut faire un RELEASE DLL
    La remarque est bonne, je la note et corrige...

    Merci

    Fred

Ajouter un commentaire

Discussions en rapport avec ce code source

API windows par captainstf

combobox dans un formulaire par brunaux

re-combobox dans formulaire par brunaux

formulaire ajustable par brunaux

problème du serveur ole par h_adil

Gestion d'objet par spoutnic_37

Formulaire premier niveau et enfant . par spoutnic_37

formulaire-->Excel par Domatreal

a faire et ne pas faire en VFP par brunaux

pb d'exe ! par spoutnic_37

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS