2012-01-17 9 views
1

私はspy ++を使用していますが、私が持っているコントロールはspy ++の16進数(変換後も)と一致する10進数を持っています。フォームとウィンドウのラベルとIntPtrのIntPtrがありますが、SendMessageはターゲットアプリケーションのテキストを変更しようとしていません。「別の」win32アプリケーションでテキストを設定する方法

別のアプローチは、この記事のような何かをするかもしれすることができるが、コントロールIDが何であるとどのように私は正しい、SetText of textbox in external app. Win32 API

が、私はここのhWndをコントロールのhWndにする必要があると仮定していることですか?

SendMessageCall(hWnd, WM_SETTEXT, (IntPtr)value.Length, value); 

まだそれは変更してからテキストを取得していないテキストを設定し、私はテキストが

SendMessageCall(hWnd, WM_GETTEXT, (IntPtr)sb.Capacity, sb); 

を働いているばかりということに気づくと、私は正しい値を参照してください、私はテストを得ることに気付きます再びSendMessageを使用して、それは新しい値ですが、アプリケーションはまだ間違った値を示しています....うーん、私は多分再描画メッセージを送る必要がありますか?そうなら、そのコードは何ですか?

おかげで、 ディーン

+0

'value.Length'ではなく' wParam'を0に設定してみてください。 –

+0

これはうまくいきませんでしたが、私はwinspectorを使用することができました。実際には、ターゲットのコンポーネントが設定されたテキストメッセージを受信して​​いるのを見ています(以下の回答のようにrectを無効にしてください)。 –

答えて

2

あなたはInvalidateRect(hWnd, NULL, TRUE)を呼び出す代わりに、再描画を強制的にウィンドウメッセージを送信しません。

+0

救世主...それは今働く!私はそれが問題であるかもしれないことに気付くまで、後の時間、時間を費やしてこの塗り替えを覚えておく必要があります。 –

関連する問題