2011-08-03 11 views
0

私は、いくつかの編集フィールドを含むツールバーがあるメインウィンドウがある状況があります。Win32アプリケーション内でフォーカスを制御するにはどうすればよいですか?

ユーザーは編集フィールドにフォーカスを置いて、ビューウィンドウ(同じメインウィンドウ、同じスレッドの両方の子孫)を右クリックできるようにします。現在のテストでは

、私はフォーカスメッセージが表示は人民元ダウンメッセージを受信する前であっても起こることがわかります。kill =

  1. 編集を
  2. ダウン
  3. ビュー=設定フォーカス
  4. ビュー=人民元を集中

私は、編集内容に関係なくフォーカスを保持したくない:ユーザーがビューをRMBクリックしようとするとフォーカスを維持するだけです。

フォーカスが最初に発生するため、私は、何が起こるのかがマウスの右ボタンであることをどのようにして伝えるのかについて少し迷っています。

+0

Windowsのオンスクリーンキーボードがこれを思っています。私は、しかし、おそらくあなたはそれを検索しようとする必要がありますどのようにわからない。 –

+0

RMBがそれを引き起こしたとは言いませんが、キルフォーカスとフォーカス設定メッセージは、他のウィンドウのHWNDまたはコントロールIDを保持する必要があります。 –

+0

フレームワークを使用していますか、純粋な純粋なWin32 a la Petzoldですか? –

答えて

1

まず、右クリックしたウィンドウでWS_EX_NOACTIVATEスタイルフラグをオンにします。これにより、ウィンドウマネージャはクリックされたウィンドウを自動的にアクティブにしなくなります。

+0

ありがとうHans!これが私が必要とするものに活用できるかどうかはわかります。 – Mordachai