Menu contextuel étendu ?

Signaler
Messages postés
282
Date d'inscription
dimanche 1 avril 2001
Statut
Membre
Dernière intervention
12 février 2007
-
Messages postés
62
Date d'inscription
jeudi 5 juin 2003
Statut
Membre
Dernière intervention
14 octobre 2005
-
Bonjour !


Je cherche à faire un petit programme qui rajouterai une option dans le menu contextuel des "edit", mais en vain.


J'utilise pour détecter les menus un WNDPROC hook sur WM_CONTEXTMEN, (WM_INITMENU à lui aussi été essayer sans réussites )
qui fonctionne lui a merveille (test avec MessageBox ok quand je clique
droit sur un edit quelconque), je récupère le handle du menu, j'y
ajoute un item en premier (InsertMenu) et un a la fin (ApprendMenu),
je remet le menu modifié vers la structure, et renvoi la structure a la
chaine de hook, aucun résultat le menu reste inchangé, donc je demande
a l'aiiiiiiiiiide lol je béni celui qui me trouve^^


LRESULT CALLBACK msgBack(int nCode, WPARAM wParam, LPARAM lParam) {

CWPSTRUCT * cwp;

//char clsname[256];

HMENU mnu;

if (nCode HC_ACTION && wParam NULL) {

cwp = (CWPSTRUCT*)lParam;


if (cwp->message ==
WM_CONTEXTMENU) { //WM_CONTEXTMENU / WM_INITMENU ?) {

MessageBoxA(0, "lol", "lol", 0);



GetClassNameA(cwp->hwnd, clsname, sizeof(clsname));

if (!stricmp(clsname, "Edit")) {



mnu = (HMENU)GetMenu(cwp->hwnd);



if (!mnu) MessageBoxA(0, "no mnu", "lol", 0);



InsertMenu(mnu, 0, MF_BYPOSITION, 1000,
TEXT("item1"));



AppendMenu(mnu, MF_SEPARATOR, 0, NULL);



AppendMenu(mnu, MF_STRING, 1001,TEXT("About..."));

SetMenu(cwp->hwnd, mnu);

DrawMenuBar(cwp->hwnd);

lParam=(LPARAM)cwp;



//TrackPopupMenu(mnu, NULL, 0, 0, cwp->hwnd,
NULL);



return CallNextHookEx(MsgHook, nCode, wParam,
lParam);

}

}

}

return CallNextHookEx(MsgHook, nCode, wParam, lParam);

}



...



JAPDLL_API bool StartHook() {

if (!MsgHook) MsgHook = SetWindowsHookEx(WH_CALLWNDPROC, msgBack, hdll, 0);

if (!MsgHook) return false;

return true;

}

1 réponse

Messages postés
62
Date d'inscription
jeudi 5 juin 2003
Statut
Membre
Dernière intervention
14 octobre 2005

salut clem



je suis a la recherche de qqchose qui se rapproche de ce que tu veux
faire : ajouter un item dans n'importe quel menu contextuel associés au
clic droit dans les application : euh, mieux formulé : quand on fait un
clic droit dans une appli (word, outlook, acrobat, etc ) on y voit un
item genre TOTO et associer un action quand on clique sur TOTO.

Bon je sais que c'est completment aléatoire, mais si jamais y'a un bout
de code qui permet de faire qqchose.. (il parait que y'a des appli
comme sa qui arrivent a se foutre dans les menu de toutes les autres)



si tu as eu des piste, si tu arrive a faire qqchose en rapport avec sa,
sa serait super sympa de m'expliquer la marche a suivre.... si c'est
possible de faire la chose..





A+