Intercepter les clics des menus
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Bonjour,

Afin d'améliorer la gestion de la navigation dans un projet, nous recherchons le moyen d'intercepter les sélections des options dans un menu principal.

L'idée est alors de stocker le nombre de clic de chaque option pour contituer une liste des N options les plus fréquement utilisées par l'utilisateur... et d'afficher le résultat dans une barre d'outils.

Merci de vos piste. En effet, il nous est déjà possible d'ajouter du code à chque option du menu mais nous aurions aimé faire mieux.

Contribution le : 26/09/2005 17:41
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: Intercepter les clics des menus

Inscrit:
19/11/2002 12:20
Post(s): 390
Peut être une piste, mais je ne sais pas si elle est intéressante, en faisant dans une fenêtre (fenêtre1):
Evénement("getevent", "fenêtre1", WM_MENUSELECT)


Avec:

PROCEDURE getevent(txtMessage, wParam, lParam)
Trace(_EVE.nom+" "+txtMessage+" "+wParam+" "+lParam+".")


on capte ainsi le numéro de l'option du menu (l'ID unique) survolée (en fait mise en surbrillance) au clavier ou en utilisant une souris.
En fait le wParam renvoie l'id de l'option du menu sur lequel on est actuellement (normalement c'est le poids fort dewParam qui est censé le renvoyer) si le lParam = 0, ce qui est fortement bizarre car il est censé renvoyer le handle du menu (selon M$)...

Le hic c'est que j'ai l'impression que Windev ne respecte absolument pas les menus Windows normaux car il est impossible de capter les clics, les WM_COMMAND, les WM_MENUCOMMAND que l'on devrait pouvoir trapper et par conséquent je n'ai pas trouvé de moyen pour savoir quelle option avait été choisie vu qu'apparemment les seuls event que l'on puisse trapper sont les draw (par exemple)...

En faisant:
Evénement("getevent", "fenêtre1", 0)

J'ai bien tous les events de la fenêtre, mais rien à part les draw et consors (13, 15, 20, 133) lorsqu'on est dans le menu principal...

Contribution le : 27/09/2005 12:21
Créer un fichier PDF de la contribution Imprimer


Re: Intercepter les clics des menus

Inscrit:
19/11/2002 12:20
Post(s): 390
Donc ou faire un truc genre chercher la séquence des events pour "deviner" qu'un clic a eu lieu en un certain laps de temps ou alors lorsqu'un event WM_MENUSELECT est capté, prendre le dernier capté dans la file et lui mettre un coefficient genre si on a:
à 12:35:23:32 Id menu 3
à 12:35:23:34 Id menu 4
à 12:35:23:35 Id menu 5

à 12:35:43:32 Id menu 2

C'est qu'à priori on a survolé les menus 3, 4 et 5 et cliqué sur le 5 finalement vu qu'ensuite 20 secondes plus tard on recommence une nouvelle série... Ce n'est donc pas du sûr (la personne a pu sortir du menu par exemple, chose impossible à capter vu qu'en cliquant sur la fenêtre hors menu on ne le capte pas), mais bon, ça devrait permettre de faire des stats...

Reste la solution bourrine de mettre un appel de procédure à chaque option pour faires les stats genre:
add_stats(option_menu)
Peut être ne le faire que si le programme exe n'a été lancé avec un paramètre genre:
"toto.exe -stats"

Autre chose assez dommage, le menu principal s'appelle:
_Menu et prévoit une zone de code... qui n'est apparemment jamais attaquée... Bref... Que de choses dommages :(

Contribution le : 27/09/2005 12:33
Créer un fichier PDF de la contribution Imprimer


Re: Intercepter les clics des menus
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Merci lmame d'avoir éclairci mon chemin. Effectivement on n'a peu de choses disponibles sur les énèvement de menu...

Dans doute vais-je me porter sur la méthode 'bourinne' qui est aussi la plus sûre.

Sans aucun doute une classe/un composant à publier sous peu, des fois que quelqu'un améliore...

Contribution le : 27/09/2005 14:04
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2