J'héberge un contrôle de navigateur Web et je souhaite fournir mon propre menu contextuel.ajouter un menu contextuel personnalisé au contrôle du navigateur Web hébergé
Idéalement, je souhaite présenter mon propre menu contextuel, qui contient le menu contextuel du navigateur d'origine (avec tous les addins, etc.) en tant que sous-menu.
Si ce n'est pas possible/difficile, je serais d'accord, par exemple. normalement en affichant mon menu contextuel et en affichant le menu d'origine lorsque l'utilisateur appuie sur MAJ. J'ai besoin de mettre en œuvre IDocHostUIHandler? Si oui, comment puis-je spécifier un menu contextuel personnalisé, comment puis-je forcer l'original? Comment puis-je obtenir le contrôle pour utiliser ma mise en œuvre?
Le contrôle est créé en tant que telle (gestion des erreurs omise):
HRESULT hr=AtlAxCreateControlEx(
L"Shell.Explorer",m_wndWebCtrl.m_hWnd,
NULL,NULL,(IUnknown**)&unk,
IID_IWebBrowser2, NULL); // (IPersistStreamInit*)this);
hr = AtlAdviseSinkMap(this, true);
IUnknownPtr unk;
AtlAxGetControl(m_wndWebCtrl.m_hWnd, &unk);
IWebBrowser2Ptr browser2 = unk;
Merci Shog :) Je ne veux tout simplement pas couper complètement l'utilisateur de la fonctionnalité par défaut, donc je suppose que GetKeyboardState fera l'affaire. Est-ce que je sais aussi comment je dis à ATL d'utiliser mon IDocHostUIHandler dans la mise en œuvre de son site client? – peterchen
Je ne peux pas vous le dire, j'ai peur ... Je n'ai jamais essayé en utilisant ATL moi-même. Peut-être que cela va aider? http://support.microsoft.com/kb/274202 – Shog9