2

グラフィックを表示するためのウィンドウ(これを「グラフィックウィンドウ」と呼びます)と、テキストを入力して表示するためのウィンドウ(「テキストウィンドウ」と呼びます)の2つのウィンドウを持つプログラムがあります。テキスト ウィンドウは、グラフィックス ウィンドウの子です。テキスト ウィンドウが強調表示されている限り、プログラムはキーストロークを正しく処理しますが、グラフィックス ウィンドウが強調表示されている場合、キーストロークは無視されます。私がやりたいことは、グラフィックス ウィンドウが強調表示されている場合でも、テキスト ウィンドウがキーストロークを処理するように調整することです。

問題が解決しました:

テキスト ウィンドウは、それ自体がリッチ エディット ウィンドウの親です。

グラフィックス ウィンドウのメッセージ ハンドラー内に、以下を追加しました。

case WM_CHAR: 
case WM_KEYDOWN: 
case WM_KEYUP: 
case WM_SYSKEYDOWN:
case WM_SYSKEYUP: 
    SendMessage(handle_of_rich_edit_window, message, wParam, lParam);
    break;

以前にメッセージをテキストウィンドウに送信しようとしましたが、うまくいかなかったようです (理由はわかりません)。メッセージをリッチエディット ウィンドウに直接送信すると、問題が解決したようです。

4

2 に答える 2