他のアプリのエディットボックスの値の設定 – プログラミング – Home

他のアプリのエディットボックスの値の設...
 
通知
すべてクリア

[解決済] 他のアプリのエディットボックスの値の設定


さっち
 さっち
(@さっち)
ゲスト
結合: 23年前
投稿: 11
Topic starter  

VC++6.0での質問です。

次のような二つのアプリケーションがあります。
・App1:
Editがあるダイアログボックスを表示し、OKボタンが押されたら、Editに入力された
値をMessageBoxで表示する。
・App2:
App1のEditに値をセットする。

App2では次の処理で、App1のEditの値をセットしています。
////////
void CAppAuthenDlg::OnSendSetitem()
{
HWND hMainWnd = NULL;

//App1のハンドル取得
hMainWnd = ::FindWindow( #123456, TEST );
if ( hMainWnd == NULL )
{
MessageBox(失敗);
return;
}

::SetDlgItemText( hMainWnd , 1, おーけー ); // OKボタン
::SetDlgItemText( hMainWnd , 1000, Name ); // Edit

return;
}
////////
上記処理を実行後、以下のような結果になります。
・OKボタンのキャプションはおーけーと表示されます。
・EditはNameと表示されず、App2実行前の"(空)です。

ただし、Spy++でEditのキャプションを見るとNameに変わっています。
また、App1のOKボタンをクリックで表示されるEditの値は、"です。

もちろんApp1のEditに手入力でhogehogeと入力し、OKボタンをクリックすると
hogehogeと表示されます。

どのようにApp2を修正すれば、App1のエディットの値を変更することが
できるのでしょうか?(App1を修正することはできません。)

ご助言をお願いします。


引用未解決
トピックタグ
wood
 wood
(@wood)
ゲスト
結合: 23年前
投稿: 895
 

MSDNの解説を見ると
WM_SETTEXT
を受け取りがわで受け取っているはずなので
これを受け取ったときの処理を記述しておく
のはどうでしょうか

実際にはやったこと無いんですけど、2~3年自主学習している未熟者の発想です..


返信引用
さっち
 さっち
(@さっち)
ゲスト
結合: 23年前
投稿: 11
Topic starter  

woodさん、ご助言ありがとうございます。

説明が足りませんでした。
woodさんは、次のように解釈してくれたのだと思います。
App1:受け取り側
App2:送り側

私が今回取り組んでいることでは、受け取り側に処理を追加することはできないのです。

受け取り側がどのような処理をしているかによって、できない場合もあると思っています。
ただ、App1のEditに「手入力」で値が入力できるのだから、
App2でも「手入力」のような処理をしてやれば良いのかな?という発想です。

App2で
::SetDlgItemText( hMainWnd , 1000, Name );
の後に何かしらのメッセージをApp1に送ってやれば良いのでしょうか????

まだ、解決できていません。引き続きお願い致します。


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

HWND hEdit = ::GetDlgItem(hMainWnd , 1000);
::SendMessage(hEdit, WM_SETTEXT, 0, (LPARAM)Name);
としたらできませんか?


返信引用
さっち
 さっち
(@さっち)
ゲスト
結合: 23年前
投稿: 11
Topic starter  

お世話になっております。
dairygoodsさんの教えてくれた方法でできました。
#かなり感動してます^^;

皆さん、どうもありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました