ダイアログボックスにタイトル名無し、同じクラス名を持つEditBoxが2つ有りま
す。1つ目のEditBoxには値を入れることが出来るのですが2つ目のEditBoxに値を入れるこ
とが出来ません。どなたか教えていただけないでしょうか。
よろしくお願いします。
Wnd = FindWindow(NULL, 設定);
if(Wnd != NULL)
{
SetForegroundWindow(Wnd);
Wnd1 = FindWindowEx(Wnd, NULL, Edit, NULL);
if(Wnd1 != NULL)
{
SetFocus(Wnd1);
SendMessage(Wnd1,WM_SETTEXT,0,(LPARAM)name1);
}
Wnd2 = FindWindowEx(Wnd, NULL, Edit, NULL);
if(Wnd2 != NULL)
{
SetFocus(Wnd2);
SendMessage(Wnd2,WM_SETTEXT,0,(LPARAM)name2);
}
}
・・・VCのToolより・・・
00040774 設定 #32770 (ダイアログ)
001A0756 名前1 Static
000C079A " Edit
007D07CA 名前2 Static
00190732 " Edit
http://msdn.microsoft.com/library/ja/default.asp?
url=/library/ja/jpwinui/html/_win32_findwindowex.asp
の
hwndChildAfter
の説明を読んでみて下さい。
>Wnd2 = FindWindowEx(Wnd, NULL, Edit, NULL);
Wnd2 = FindWindowEx(Wnd, Wnd1, Edit, NULL);
FindWindowExの説明を見ると第2引数に検索を開始するウィンドウのハンドルを渡せば
いいとの事なので、2回目のFindWindowExの第2引数に最初のハンドル(Wnd1)を渡せ
ばいいのでは?
かぶった... orz
Blueさん、maruさん、
返信ありがとうございます。
お陰で解決しました。
FindWindowExの第2引数の意味を勘違いしていました。
そのため次のEditBoxのハンドルをまったく別のAPIで探し出さないと駄目かと途方に
くれていました。これからは説明文を斜めに読まないことにします。
有難うございました。