2009-08-01 4 views
3

SDIを使用して多数の動的に作成されたCViewベースのビューをホストする比較的大きなMFCアプリケーションがあります。アプリケーションの基本的な構造は、Outlook(左のツリービュー、右の動的ビュー)にいくらか似ています。MFC SDIマルチビューアプリケーションへの入力フォーカスの管理

私は、アプリでフォーカスを変更するための正しい方法について困惑しています。たとえば、フォーカスがツリービュー(左側のビュー)にある間に「タブ」をクリックし、フォーカスを適切なビューに移動することができます。私はツリーのタブでタブキーをキャプチャし、手動で適切なビューに変更することができますが、私たちは多くの異なるビュータイプ(いくつかのCformViewベース)と多くのスプリッタコントロールを持っています。それを処理する方法。

私はCDialogやCFormViewでフォーカスを設定するのは簡単です(Visual Studioのビルトインタブオーダーマネージャーを使用するだけです)が、複数のビュータイプと分割バーなどをホストするアプリケーションははるかに複雑です。たとえば、フォーカスが現在フォームビューにある場合、フォームビュータブの最後にタブを置くと、入力フォーカスを別の(動的)ビューに変更する必要があることをどのように検出できますか?

乾杯とありがとうございます。

ダレン。

答えて

0

明らかな答えは、UI自体を単純化することです。

もう1つは、ビュー内の「タブ」だけで、ユーザーがあるビューから別のビューに切り替えるにはマウスを使用する必要があります。あるいは、メニュー項目を作成して、メニュー選択(キーボードはAlt-V-1を押してビュー1を選択するなどの方法で使用できます)でビューを選択させることができます。

最終的な選択肢は、自分で言及したものです。タブキーを検出して、すべてを自分で処理します。

関連する問題