|
bool CALLBACK aaa(HWND h,LPARAM l)
{
char s[51];
GetClassName(h,s,50);
TWinControl*a=FindControl(h);
if(a){
ShowMessage(a->Name);
}
Form1->ListBox1->Items->Add(s);
return true;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
EnumChildWindows(Handle,(WNDENUMPROC)aaa,0);
}
참고만 하십시요..
c인 님이 쓰신 글 :
: char str[100], str1[100];
:
: HWND hwnd;
:
: hwnd = FindWindow(PChar(0), "Form2");
:
: GetWindowText(hwnd, str1, sizeof(str1) - 1);
: Memo1->Lines->Add(str1);
:
: GetClassName(hwnd, str, sizeof(str) - 1);
: Memo1->Lines->Add(str);
:
:
: TWinControl *h;
:
: h = FindControl(hwnd);
:
: if(h)h->SetFocus();
: else Memo1->Lines->Add("no");
:
: 이런식으로 하니까 실행된 프로그램(정확하게 폼인가요?)의 핸들은 얻어오는거 같은데요.
: 그 폼의 각각의 콘트롤의 핸들은 어떻게 얻을수 있을까요??
: 예를 들어 Form2에 에디트박스(Edit1, Edit2)가 2개 있다면 Edit2의 핸들을 얻는 방법은
: 뭘까요?? 너무 허접이라 관련글을 찾아봐도 어렵습니다.
: 그리고 핸들을 얻는다면 FindControl함수로 핸들의 포인트를 얻어서 사용할 수 있는가요?
: 예를 들어 h->SetFocus()같은 거 말이죠..
: 그럼, 즐프여~!
|