Abc elliptic form paint

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 852 fois - Téléchargée 29 fois

Contenu du snippet

Comme le dit le titre créer une feuille sous forme d'ellipse !!!

Source / Exemple :


Option Explicit 
Public Declare Function CreateEllipticRgn Lib "gdi32" _
    (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, _
    ByVal Y2 As Long) As Long

Public Declare Function SetWindowRgn Lib "user32" _
    (ByVal hWnd As Long, ByVal hRgn As Long, _
    ByVal bRedraw As Boolean) As Long

Private Sub Fermer_Click()'Quitter l'Application !!
msgbox "ABC Skinner 2004(R)",0,"Auteur"
End
End Sub

Private Sub Form_Load()
    Show                                          'The form!
    SetWindowRgn hWnd, CreateEllipticRgn(0, 0, 300, 200), True
End Sub

Private Sub Timer1_Timer()              'interval=500 !!
temps.Caption = Time
End Sub

'Copyright: ABC Skinner --> 2004 (R) <-- '

Conclusion :


il n'y a rien à ajouter...

A voir également

Ajouter un commentaire Commentaires
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
exact... j'apprends un truc, encore, grâce à toi EB

"After a successful call to SetWindowRgn, the system owns the region specified by the region handle hRgn. The system does not make a copy of the region. Thus, you should not make any further function calls with this region handle. In particular, do not delete this region handle. The system deletes the region handle when it no longer needed."

toujours lire les petites lignes en bas.....
Messages postés
4525
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
9
Désolé de te contre dire Renfield mais une fois que l'on a appelé SetWindowRgn, le systeme est propriétaire de la l'objet, par consequent on ne peut plus utiliser le handle et le systeme se charge de sa libération.

cf: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/pantdraw_2him.asp

@+
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
Pas bien ;-)

en effet, ton code n'est pas parfait (lequel l'est ? ;) )

juste que tu crées une région.... il faut donc la supprimer....


Declare Function DeleteObject Lib "gdi32" Alias "DeleteObject" (ByVal hObject As Long) As Long

Dim hRgn as long '# HANDLE de la région

Private Sub Form_Unload()
DeleteObject hRgn
End Sub

Private Sub Fermer_Click()'Quitter l'Application !!
MsgBox "ABC Skinner 2004(R)",0,"Auteur"
Unload Me
End Sub

Private Sub Form_Load()
hRgn = CreateEllipticRgn(0, 0, 300, 200)
SetWindowRgn hWnd, hRgn , True
End Sub

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.