PROFESSIONAL NEWSGROUPS
WINDEV
,
WEBDEV
and
WINDEV Mobile
Home
|
Recent messages
|
Connect
|
Sign out
|
English
Home
→
WINDEV 2024
→
Gestion des événements Windows
Gestion des événements Windows
Started by Youenn, Mar., 25 2005 12:31 PM - 4 replies
Connect yourself…
Youenn
#1
Posted on March, 25 2005 - 12:31 PM
Je voudrais gérer 2 événements Windows en même temps sur une fenêtre quelconque.
Je sais comment intercepter l'événement "Clic Souris" (WM_LBUTTONDOWN) et je sais aussi comment intercepter l'événement "Déplacement Souris" (WM_MOVE).
Je voudrais réunir ces 2 événements en un seul, c'est à dire lancer une procédure automatiquement quand des 2 événements sont effectués en même temps. J'ai essayé d'additionner les 2 événements à la déclaration de l'événement mais rien ne se passe.
Si qq1 a une idée ?
Merci
Report
0
0
Jean-Baptiste Dumontier
#2
Posted on March, 25 2005 - 7:05 PM
Effectivement on ne peut pas "additionner" les événements car il viennent à la queue leu leu dans une file et le programme les traite un par un.
Je crois même savoir que certains événements "doublent" les autres dans la file d'attente, ils sont prioritaires.
Pour ton problème je te suggére une solution avec une variable globale booléenne.
Tu la mets à vrai quand l'utilisateur enfonce le bouton de la souris
Tu la repositionnes à faux quand l'utilisateur le relache.
Et dans l'évenement WM_MOVE tu testes la valeur de ta variable
Ca devrait le faire.
Report
0
0
[DrCharly93]
#3
Posted on March, 28 2005 - 1:35 AM
Bonjour,
Vous pouvez bien sur cumuler les evenements avec Windev.
Pour ce faire il vous suffit de rediriger tous les evenements dans une
procédure de votre choix en y passant comme numéro de message 0
Ce sera dans cette procédure que vous sélectionnerez les traitement à
effectuer selon les messages voulus.
Exemple
//Déclaration de l'évenement dans l'initialisation de la fenêtre
Evénement
(
"MaProcedure"
,
"*.*"
,
0
)
Pour la procedure
[code]
PROCEDURE MaProcedure(pMessage, pwParam, plParam)
Selon pMessage
CAS WM_LBUTTONDOWN
//Traitement si bouton gauche enfoncé
CAS WM_MOVE
//Traitement sur déplacement de souris
Fin
SI pMessage = WM_LBUTTONDOWN Alors
//Traitement a effectuer
Fin
[DrCharly93] Animateur
www.wdforge.org
"Youenn" <youenn.kerdevez@inextenso.fr> a écrit dans le message de news:
4243dd3e$1@news.pcsoft.fr...
Je voudrais gérer 2 événements Windows en même temps sur une fenêtre
quelconque.
Je sais comment intercepter l'événement "Clic Souris" (WM_LBUTTONDOWN) et
je sais aussi comment intercepter l'événement "Déplacement Souris"
(WM_MOVE).
Je voudrais réunir ces 2 événements en un seul, c'est à dire lancer une
procédure automatiquement quand des 2 événements sont effectués en même
temps. J'ai essayé d'additionner les 2 événements à la déclaration de
l'événement mais rien ne se passe.
Si qq1 a une idée ?
Merci
Report
0
0
MANDIN Claude
#4
Posted on March, 28 2005 - 11:37 PM
Salut
Bien sur que l'on peut traiter les deux à la fois
si dessous un extrait de code
// Initialisation de la fenetre ou a la prise de focus
// La commande EXTERNE permet d'inclure automatiquement le fichier WINCONST.WL
// Ce fichier contient la valeur des constantes WINDOWS
// Ce code est à déplacer dans le code d'init du projet ou de la fenêtre
EXTERN
"WINCONST.WL"
Evénement
(
"EVE_SOURIS"
,
MaFenêtre
..
Nom
+
".*"
,
WM_MOUSEMOVE
)
Evénement
(
"EVE_SOURIS"
,
MaFenêtre
..
Nom
+
".*"
,
WM_LBUTTONDOWN
)
Evénement
(
"EVE_SOURIS"
,
"menu.*"
,
WM_LBUTTONDBLCLK
)
//------------------------------------------------------------------------
Procedure
en
LOCAL
pour la fenetre
Procedure
EVE_Souris
(
)
SourisPosX
est un
entier
SourisPosY
est un
entier
SELON
_EVE.wMessage
CAS
512
:
SourisPosX
=
PoidsFaible
(
_EVE.lParam
)
SourisPosY
=
PoidsFort
(
_EVE.lParam
)
CAS
513
:
EVE_LBUTTONDOWN
(
_EVE.lParam
)
CAS
515
:
EVE_LBUTTONDBLCLK
(
_EVE.lParam
)
CAS
514
:
FIN
// La procédure ci dessus a été refaite de tête, mais faudra que tu fasses des
// essais car je ne me rappelle plus le code du Bouton Clic
//-------------------------------------------------------------------------
Procedure
EVE_LBUTTONDBLCLK
(
lparam
)
SourisPosX
est un
entier
SourisPosY
est un
entier
SourisPosX
=
PoidsFaible
(
lparam
)
SourisPosY
=
PoidsFort
(
lparam
)
//---------------------------------------------------------------------------
Procedure
EVE_LBUTTONDOWN
(
lparam
)
SourisPosX
est un
entier
SourisPosY
est un
entier
SourisPosX
=
PoidsFaible
(
lparam
)
SourisPosY
=
PoidsFort
(
lparam
)
Report
0
0
MANDIN Claude
#5
Posted on March, 28 2005 - 11:48 PM
Re salut dans mon précédent message j'ai oublié de te dire qu'il existe des fonctions
telque
<Résultat> = ToucheEnfoncée(<Constante> [, <Changement d'état>])
Détails des paramètres
<Résultat> : Booléen
Vrai si la touche de contrôle est enfoncée ou a changé d'état depuis le dernier appel de la fonction ToucheEnfoncée , Faux dans le cas contraire.
<Constante> : Constante de type entier Identifie la touche de contrôle :
teShift Touche SHIFT
teControl Touche CTRL
teAlt Touche ALT
teBoutonG Bouton gauche de la souris
teBoutonD Bouton droit de la souris
teEchap Touche ECHAP
Tu peux t'en servir dans la Procedure EVE_Souris // Sous réserve que cette fonction existe dans ta version Windev ,pour moi c'est la neuf
Bonne Prog / a ton service
Report
0
0
→ Go back to WINDEV 2024
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (earlier versions)
WEBDEV (earlier versions)
WINDEV Mobile (earlier versions)
Reports & Queries
Off-topic
Tools
Français
English
Español
Portuguesa
Close this window
Search type
Only topics
All the messages
Search period
Any time
Past hour
Past 24 hours
Past week
Past month
Past year
Cancel
Preview of your message
Adding an image
Import an image from a URL
Send an image from a file of your disk
Drop a file or click "Browse..."
or
Cancel
0%
WLanguage
SQL
XML, HTML
JAVA, Javascript
Text