Personaliser le dialog d'ouverture et d'enregitrement
3 réponses
Kira
Bonjour,
J'aimerais ajouter un menu contextuel à une boîte de dialogue
d'ouverture/enregistrement (GetOpenFileName) lorsqu'un utilisateur éxecute
une une combinaision de touches (hotkey).
La difficulté étant que ceci ne doit pas marcher uniquement pour mon
application, mais dans toutes.
En gros, j'aimerais faire la même chose que ce soft là :
http://www.shelltoys.com/access_folders/index.html
Pourriez-vous s'il vous plaît me décrire la marche à suivre ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Chistian ASTOR
Kira a écrit:
J'aimerais ajouter un menu contextuel à une boîte de dialogue d'ouverture/enregistrement (GetOpenFileName) lorsqu'un utilisateur éxecute une une combinaision de touches (hotkey).
La difficulté étant que ceci ne doit pas marcher uniquement pour mon application, mais dans toutes.
En gros, j'aimerais faire la même chose que ce soft là : http://www.shelltoys.com/access_folders/index.html
Il n'y a pas de difficulté, puisqu'une Hot Key est globale. RegisterHotKey()-WM_HOTKEY-...TrackPopupMenu()... + envoi commandes à la Dlg courante. (et l'appli utlise bien sûr WH_MOUSE pour le click droit)
Kira a écrit:
J'aimerais ajouter un menu contextuel à une boîte de dialogue
d'ouverture/enregistrement (GetOpenFileName) lorsqu'un utilisateur éxecute
une une combinaision de touches (hotkey).
La difficulté étant que ceci ne doit pas marcher uniquement pour mon
application, mais dans toutes.
En gros, j'aimerais faire la même chose que ce soft là :
http://www.shelltoys.com/access_folders/index.html
Il n'y a pas de difficulté, puisqu'une Hot Key est globale.
RegisterHotKey()-WM_HOTKEY-...TrackPopupMenu()... + envoi commandes à la
Dlg courante.
(et l'appli utlise bien sûr WH_MOUSE pour le click droit)
J'aimerais ajouter un menu contextuel à une boîte de dialogue d'ouverture/enregistrement (GetOpenFileName) lorsqu'un utilisateur éxecute une une combinaision de touches (hotkey).
La difficulté étant que ceci ne doit pas marcher uniquement pour mon application, mais dans toutes.
En gros, j'aimerais faire la même chose que ce soft là : http://www.shelltoys.com/access_folders/index.html
Il n'y a pas de difficulté, puisqu'une Hot Key est globale. RegisterHotKey()-WM_HOTKEY-...TrackPopupMenu()... + envoi commandes à la Dlg courante. (et l'appli utlise bien sûr WH_MOUSE pour le click droit)
Kira
Chistian ASTOR wrote in news:3ffff890$0$6967$:
Il n'y a pas de difficulté, puisqu'une Hot Key est globale. RegisterHotKey()-WM_HOTKEY-...TrackPopupMenu()... + envoi commandes à la Dlg courante. (et l'appli utlise bien sûr WH_MOUSE pour le click droit)
Merci pour ta réponse. Effectivement, mais comment puis-je savoir que l'utilisateur a invoqué la hotkey sur une fenêtre d'ouverture/enregistrement de fichiers (si la hotkey est invoquée ailleurs, le menu doit avoir un autre comportement - à savoir, simplement ouvrir le dossier dans l'explorateur, au lieu de changer le dossier actif dans le dialogue d'ouverture/enregistrement).
Comment donc savoir si la fenêtre active est une fenêtre créee par GetOpen/SaveFileName ? Je n'ai trouvé aucun critère qui pourrait me permettre de l'identifier par rapport à une fenêtre classique, avec Spy++.
Merci d'avance.
Chistian ASTOR <castorix@club-internet.fr> wrote in
news:3ffff890$0$6967$7a628cd7@news.club-internet.fr:
Il n'y a pas de difficulté, puisqu'une Hot Key est globale.
RegisterHotKey()-WM_HOTKEY-...TrackPopupMenu()... + envoi commandes à
la Dlg courante.
(et l'appli utlise bien sûr WH_MOUSE pour le click droit)
Merci pour ta réponse.
Effectivement, mais comment puis-je savoir que l'utilisateur a invoqué la
hotkey sur une fenêtre d'ouverture/enregistrement de fichiers (si la hotkey
est invoquée ailleurs, le menu doit avoir un autre comportement - à savoir,
simplement ouvrir le dossier dans l'explorateur, au lieu de changer le
dossier actif dans le dialogue d'ouverture/enregistrement).
Comment donc savoir si la fenêtre active est une fenêtre créee par
GetOpen/SaveFileName ? Je n'ai trouvé aucun critère qui pourrait me
permettre de l'identifier par rapport à une fenêtre classique, avec Spy++.
Il n'y a pas de difficulté, puisqu'une Hot Key est globale. RegisterHotKey()-WM_HOTKEY-...TrackPopupMenu()... + envoi commandes à la Dlg courante. (et l'appli utlise bien sûr WH_MOUSE pour le click droit)
Merci pour ta réponse. Effectivement, mais comment puis-je savoir que l'utilisateur a invoqué la hotkey sur une fenêtre d'ouverture/enregistrement de fichiers (si la hotkey est invoquée ailleurs, le menu doit avoir un autre comportement - à savoir, simplement ouvrir le dossier dans l'explorateur, au lieu de changer le dossier actif dans le dialogue d'ouverture/enregistrement).
Comment donc savoir si la fenêtre active est une fenêtre créee par GetOpen/SaveFileName ? Je n'ai trouvé aucun critère qui pourrait me permettre de l'identifier par rapport à une fenêtre classique, avec Spy++.
Merci d'avance.
Chistian ASTOR
Kira a écrit:
Comment donc savoir si la fenêtre active est une fenêtre créee par GetOpen/SaveFileName ? Je n'ai trouvé aucun critère qui pourrait me permettre de l'identifier par rapport à une fenêtre classique, avec Spy++.
Les ID des child controls sont en principe constants.
SHELLDLL_DefView = 0x0461 pour Explorer-style Listbox = 0x0460 (lst1) pour old-style etc... (pas testé sur 2000-XP) A part pour les Dlg Office ("bosa_sdm_Microsoft Word x.0", où l'appli citée bugge un peu).
Kira a écrit:
Comment donc savoir si la fenêtre active est une fenêtre créee par
GetOpen/SaveFileName ? Je n'ai trouvé aucun critère qui pourrait me
permettre de l'identifier par rapport à une fenêtre classique, avec Spy++.
Les ID des child controls sont en principe constants.
SHELLDLL_DefView = 0x0461 pour Explorer-style
Listbox = 0x0460 (lst1) pour old-style
etc...
(pas testé sur 2000-XP)
A part pour les Dlg Office ("bosa_sdm_Microsoft Word x.0", où l'appli
citée bugge un peu).
Comment donc savoir si la fenêtre active est une fenêtre créee par GetOpen/SaveFileName ? Je n'ai trouvé aucun critère qui pourrait me permettre de l'identifier par rapport à une fenêtre classique, avec Spy++.
Les ID des child controls sont en principe constants.
SHELLDLL_DefView = 0x0461 pour Explorer-style Listbox = 0x0460 (lst1) pour old-style etc... (pas testé sur 2000-XP) A part pour les Dlg Office ("bosa_sdm_Microsoft Word x.0", où l'appli citée bugge un peu).