今回はメモ帳に「a」と入力するプログラムを作るための調査手順を記載しています。
こちらの記事は、調査手順のみ。
1.Spy++の起動
Spy++はVisualStudiから「ツール」→「Spy++」を選択することで起動します。
もし「Spy++」が見つからない場合は「ツール」→「ツールと機能を取得」を選択し「個別のコンポーネント」→「C++コア機能」を選択します。
起動するとこんな感じ。
2.メモ帳のハンドラを見つける
まずは、メモ帳のハンドラを見つけます。赤枠のボタンを選択し「ウィンドウ検索ダイアログ」を起動します
これは、ファインダーツールをメモ帳の「編集ウィンドウ」部分に持って行った状態。
ウィンドウ検索ダイアログの「ファインダーツール」を使用します。
画像のマルのようなマークをマウスでドラッグ&ドロップして、メモ帳に移動します。
文字入力する部分が太枠で囲まれます。
3.編集ウィンドウのハンドラの構成を確認する
ウィンドウ検索ダイアログの「表示」で「プロパティ」を選択しプロパティで「同期」を押下すると、Spy++のメインウィンドウにハンドラの構成が表示されます。
この例では、メインハンドラの直下に編集ウィンドウが存在しましたが、複雑なプログラムでは、構成が複雑になっています。
4.メッセージを確認する
ウィンドウ検索ダイアログの「表示」で「メッセージ」を選択すると、メッセージ通知の確認ができます。
初期設定では大量のメッセージが流れてくるので「ログオプション」を起動し、必要なメッセージのみ表示するようにします。
今回は、キーボード操作時のメッセージを確認するので「キーボード」のみを選択します。
画面はこのように表示されます。
先頭行のメッセージで右クリック→プロパティを選択すると、パラメータ確認ができます。
WM_KEYDOWN(0100) がポストされていて、パラメータとして「0x00000041」や「0x001E0001」が渡されています。
これは、こちらの記事のパラメータと同じものです。ソースと見比べると良いかなと思います。
メッセージログを確認すると、実際はWM_KEYDOWN以外にもWM_CHARやWM_KEYUPなど、複数のメッセージが送付されています。
作成するプログラムによって、この辺についても、実装に組みこむ必要があります。