1

TPM_RETURNCMD フラグを指定した TrackPopupMenu() API を使用してポップアップ コンテキスト メニューを表示するとします。コンテキスト メニューが表示されている間に、Shift キーまたは Ctrl キーがキーボードで押されているかどうかを確認し、それに応じてコンテキスト メニューのいくつかのメニュー項目を更新する必要があります。それは可能ですか?

4

2 に答える 2

1

メニュー項目を変更するには、何かを::SetMenuItemInfo()呼び出し て::DrawMenuBar()から、再描画するために呼び出す必要があります。

于 2012-11-04T23:52:23.740 に答える
1

これは、開発しているプラ​​ットフォームの標準的なユーザー エクスペリエンスではありません。私はそのような行動にイライラすることを知っています。Windows プラットフォームでは、メニューを開く前にメタ キーを押すのが標準です。たとえば、Shift キーを押しながらエクスプローラーで項目を右クリックすると、変更されたコンテキスト メニュー ("Open with..." または "Open in new process" など) が表示されます。

プラットフォームの規則に従います。Mac 上のアプリケーションが Windows 上のアプリケーションのように動作するとは思わないし、Windows 上のアプリケーションが Mac 上のアプリケーションのように動作するとも思わない。慣例を尊重しないと、迷惑なユーザーの大規模なコミュニティになる危険があります。[ロータス ノーツ、SAP を参照]

于 2012-11-08T13:36:58.377 に答える