2012-03-04 11 views
0

エクスプローラでファイルを右クリックするとコンテキストメニューを追加しようとしています。VCでContextMenuの順序を変更する方法は?

IFACEMETHODIMP FContextMenuExt::QueryContextMenu(
HMENU hMenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) 
{ 
    ... 
    InsertMenuItem(hMenu, 0, TRUE, &mii); 
    ... 
} 

メニューが追加されましたが、メニューが上に配置されませんでした。 5位か6位のようだ。

誰かから助言をいただけますか?

+0

私が正しくリコール場合は、コンテキストメニューのリストは、それらがレジストリにリストされている順序(私はそれはそれ以来変更されている可能性ので、これはXPでだったと思う)に列挙されています。カスタムコンテキストメニューは、標準コンテキストメニューの後に常に表示されます。 – Luke

+0

@Luke in shellex \ ContextMenuHandlers、WinRarが最後に表示されますが、私のメニューの上に表示されます。コピー、カットなどの標準メニューが一番下に表示されます。 – iuwei

答えて

1

コンテキストメニュー項目の位置を指定することはできません。独自のGUI項目、コンテキストメニューハンドラ、レジストリコマンドなどコンテキストメニューハンドラが構築されているメニューにそのコマンドを追加するように要求され、メニューの所有者がアイテムを追加すると続き:シェルは、それが複数のソースから取得コマンド/アイテムでコンテキストメニューを構築しますメニューの上部にも表示されます。

あなたはおそらく、メニューのポップアップを傍受し、それがユーザーに表示される前に、それが完全に構築された後、それを更新するためにフックを設定できますが、再び - これはあなたが実際に行うことになっているものではありません。

+0

"2つのアプリケーションがこれをした場合を想像してください。" –

関連する問題