Empêcher une form de sortir de l'écran

JoNasx86 Messages postés 14 Date d'inscription jeudi 19 mai 2005 Statut Membre Dernière intervention 30 décembre 2006 - 3 déc. 2006 à 21:18
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 4 déc. 2006 à 18:52
Bonjour à toutes et à tous!

Tout d'abord je ne savais pas trop dans quel thème mettre ce sujet, vu que je suis encore débutant en VB6 (c'est d'ailleurs au passage mon 1er post sur vbfrance) je me suis permis de le placer ici.

Voici mon problème : je cherche à empêcher mon formulaire de sortir de l'écran, je cherche une api ou une astuce qui pourrait m'y faire parvenir! Pour l'instant le mieux (moins pire en fait) que j'ai reussi à faire c'est de rendre la form indéplacable quand elle touche un bord, mais bon je ne peux plus la déplacer ensuite, et puis graphiquement ça bug!

Une idée?

Merci d'avance :)

6 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
3 déc. 2006 à 21:51
mets-lui ceci :

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  If Me.Left < 0 Then Me.Left = 0
  If Me.top < 0 then Me.top = 0
etc...

End Sub

ce qui la fera revenir dans l'écran dès que tu bougeras la souris sur elle et évitera la lourdeur d'un timer...
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
3 déc. 2006 à 21:52
Excuse : pas dans MouseUp mais dans MouseMove.... évidemment !
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
4 déc. 2006 à 01:05
salut,

jmfmarques -> nop, pas d'évènement à partir de la barre de titre....

<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
4 déc. 2006 à 07:14
Oulà, ca va scintiller un max ton code jean !

Je conseille plutôt d'utiliser un subclassing des événements souris de ton application, ce sera plus fluide !
Voir ma source de magnétisation d'une feuille sur les bords de l'écran par exemple, y'a plus qu'à l'adapter pour limiter la feuille à l'écran.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JoNasx86 Messages postés 14 Date d'inscription jeudi 19 mai 2005 Statut Membre Dernière intervention 30 décembre 2006
4 déc. 2006 à 18:47
@jmfmarques : J'ai déja essayé un tel code, ça scintille beaucoup en effet, ça en est même génant...

@DARKSIDIOUS: j'ai déja tenté un subclassing, le problème majeur que j'ai rencontré c'est qu'il est assez "lourd" dans le sens ou mon appli buggait beaucoup, parfois en freezant le systeme, toutefois il ne me semble pas que le code que j'avais essayé venait de toi, je vais donc y jeter un coup d'oeil!

Merci à vous en tout cas! Si quelqu'un à autrechose à me proposer je suis preneur quand même!
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
4 déc. 2006 à 18:52
Attention avec le subclassing : si tu l'utilise sous l'ide de VB, ne clique surtout pas sur le bouton stop pour stopper ton application (car ca crashe VB, voir tout le système justement), et n'oublie surtout pas de rétablir la fonction de fenêtre par défaut à la fin de ton prog (car ca crashe VB, voir tout le système aussi).

Donc à utiliser avec précaution, mais une fois compilé, aucun problème.

En fait, c'est l'IDE de vb qui n'aime pas trop qu'on redirige les fonctions d'interception de message windows en mode debugage (et cà se comprend aisément !)
0
Rejoignez-nous