C++ MFC で記述された、多くのダイアログを備えた Windows モバイル 5.0 アプリがあります。現在対象としているデバイスの 1 つにタブ キーがないため、別のキーを使用してコントロール間を移動したいと考えています。これはボタンには問題ありませんが、エディット コントロールやコンボ ボックスには問題ありません。私は同様の質問を見てきましたが、答えはあまり適していません。私は CDialog::OnKeyDown を無駄にオーバーライドしようとしましたが、すべてのダイアログのすべてのコントロールのキーストローク機能をオーバーライドする必要はありません。これまでのところ、CEdit と CComboBox を置き換える新しいクラスを作成することを考えていますが、いつものように、別のキーを一時的に再プログラミングするなど、より簡単な方法がないかどうかを確認しています。
smacl
質問する
880 次
2 に答える
1
MFC がそれほど優れているかどうかはわかりませんが、これらすべてのコントロールのウィンドウ プロシージャを 1 つのクラスでサブクラス化することで、それを引き出すことができるかもしれません。これは、カーソル キーを押した場合のみを処理し、残りのイベントを元のプロシージャに渡します。
押されたカーソルキーに応じて、適切なコントロールに移動する独自のメカニズムを提供する必要がありますが、使いやすさを向上させる価値があるかもしれません。
これが機能する場合は、すべてのダイアログ コントロールを列挙し、それらを自動的にサブクラス化できます。
Windows Mobile 6 では、既定でカーソルを使用してダイアログ コントロールを切り替えることができます。これは、UI 内を移動する新しい、より "スマートフォン" な方法であり、信じられないほど便利です。
于 2008-10-03T12:49:49.537 に答える
-1
十字キーを使用してフィールド間を移動できませんか?
于 2008-10-03T18:50:54.940 に答える