質問する質問する
 

回答済みContextMenuでキーイベントの取得

  • 2009年9月15日 1:33けんしん ユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     
    いつもお世話になっています、けんしんと申します。

    アプリケーション内でCE機の特定キーを押すとContextMenuを使用してメニューを表示しています

    メニューの表示中にキーが押された時にメニューを消去したいのですが、showメソッドを実行するとアプリに制御が戻りません
    そのため、キーイベントを検出できず、メニューを消去することができません

    APIでキーボードをフックしようと思いましたが、既にフックする別プログラムが動作しているためフックができません
    また、ContextMenuもPC版に比べ機能が少ないので、該当機能が実装されていません

    ContextMenuが事項中にキーイベントを取得する方法はあるのでしょうか?
    よろしくお願いします。

    実行環境:.Net Compact Framework 3.5
    開発ツール:VS2008 Professional Edition +SP1
    開発言語:C#,C++

回答

  • 2009年9月29日 2:28けんしん ユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     回答済み
    ホーミン様

    いつもありがとうございます。
    ホットキーも考えたのですが、他でフックされているために使用できませんでした。

    結局、ContextMenu表示時のキーイベント取得を、今回は見送ることにしました。

    もう少し時間があれば良かったのですが、大人の事情が優先されました。

    今後とも、宜しくお願いします。

すべての返信

  • 2009年9月15日 16:15ホーミンMVPユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     
    まず使用デバイスのプラットフォーム(WM6 Pro.、WM6 Std.またはEmbeddedCE)により標準的なキー挙動が結構違いますので明記した方がよいです。

    「特定キー」というのが何かによるのですが、ホットキーは使えないでしょうか?(C#では多分p/invoke必須になります)
    他でホットキー登録されていると使用できないので、完全とはいえないのですが。
  • 2009年9月29日 2:28けんしん ユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     回答済み
    ホーミン様

    いつもありがとうございます。
    ホットキーも考えたのですが、他でフックされているために使用できませんでした。

    結局、ContextMenu表示時のキーイベント取得を、今回は見送ることにしました。

    もう少し時間があれば良かったのですが、大人の事情が優先されました。

    今後とも、宜しくお願いします。