les programeurs,
moi j'ai un pb est comment empecher le double clique sur la barre de titre d'une forme.
merci a l'avance.
les programeurs,
moi j'ai un pb est comment empecher le double clique sur la barre de titre d'une forme.
merci a l'avance.
Salut,
Tu veux éviter de faire un double clic pour ne pas agrandir ou rétrécir ta fenêtre...
visiblement tu ne peux pas faire ca de maniere simple.
Je te conseille plutot de gerer les effets que le click en lui meme.
Essaye de detecter ce qui est responsable (maximize/restore) et surcharge les methodes associées pour autoriser ou annuler l'effet.
Sinon tu peux utiliser d'autres types de bordures comme bstoolwindow ou encore rien du tout.
Apres rien ne t'empeche d'en redessiner une dan la partie top de ta form ....
+1 avec Clorish![]()
Si c'est pour "capturer" l'agrandissement et la réduction de form et annuler leur effet, il vaudrait mieux se tourner vers un autre type de fenêtre. Pour se faire, il faut éditer la propriété BorderStyle de la Form en question :
Divers choix te sont proposés :
Voilà voilàEnvoyé par Aide Delphi
![]()
Ben si !Envoyé par Clorish
Tu places TApplicationEvents sur ta form puis tu implémente OnMessage comme ceci:
@+ Claudius
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); begin if (Msg.message = WM_NCLBUTTONDBLCLK) then Handled := True; end;
sauf que la tu catch tous les messages double-click
Il faudrait plus de finesse ...
A la rigeur si on arrive a detecter la cible du message et encore.
Ou alors combiné avec le message MouseDown pour tester les coord de la sourie en position absolue, a savoir si elle se trouve dans ou hors de la barre de menu.
Je pense qu'effectivement, il n'y a pas de solution triviale a ce genre de probleme
Il faut savoir uen chose aussi : TForm est un composant a moitié derivé des objets windows .... reste plus qu'a esperer que le comportement lié au double click ne soit pas trop enfoncé dans les APIs windows![]()
Non non, j'intercepte uniquement les double-click sur la zone non client de la fenêtre: WM_NCLBUTTONDBLCLK.Envoyé par Clorish
@+
merci pour vous reponse,Envoyé par Cl@udius
mais j'ai tester vos propositions mais rien d'effet, je peux pas intercepter les double clique sur la barre de menu de ma form.
je pens qu'il fallait chercher aux APIWindows mais laquelle.
merci en avance.
puisEnvoyé par kheldoun ahmed
Le code que je t'ai proposé annule le double-clic effectué sur la barre de titre de la forme.Envoyé par kheldoun ahmed
Maintenant reste à savoir si c'est vaiment ce que tu recherches. ???
@+
autant pour moiEnvoyé par Cl@udius
Je savais meme pas qu'il y avait 2 types de messages
Comme quoi on en apprends encore tous les jours![]()
Lors d'un double clic tu peux récupérer les coordonnées de la souris , tu passes en référence client (ScreenToClient) puis tu compares avec la dimension de la zone de la barre de titre. Sachant que le point (0,0) est situé en haut à gauche de ta form (juste en dessous de ta barre de titre en fait) tu peux, après quelques réglages, trouver facilement cette zone.
Libre à toi de déterminer ce que tu veux faire de cet égènement après...
voila
ludo
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager