사용법은 다음과 같습니다.
NPARENTHANDLE : HWND;
NCHILDHANDLE : HWND;
nparenthandle : = FindWindow (nil, ''notepad '');
nparenthandle <> 0이면
nchildhandle : = findchildwindow (nparenthandle, 'somechildeditsclassname' ');
------ 기능 코드 ------
var
hwndfindchildwindow : hwnd;
기능 Enumwindowsforfindchildwindowproc (hwnd; lparam) : bool;
Const
max_window_name_len = 80;
var
StargetClassName : 문자열;
nhandle : hwnd;
ScurrclassName : 문자열;
Bresult : 부울;
시작하다
if (hwndfindchildwindow <> 0)
출구;
StargetClassName : = pchar (lparam);
ScurrclassName : = GetWindowClass (Whandle);
bresult : = compareText (scurrclassName, StarGetClassName) = 0;
if (bresult) 그러면
hwndfindchildwindow : = whandle
또 다른
findchildwindow (Whandle, pchar (lparam));
끝;
함수 findchildwindow (hwndparent : hwnd; classname : pchar) : hwnd;
시작하다
노력하다
EnumchildWindows (hwndparent, @enumwindowsforfindchildwindowproc, longint (pchar (classname)));
결과 : = hwndfindchildwindow;
제외하고
예외적으로
결과 : = 0;
끝;
끝;
// 초점으로 현재 양식으로 돌아갑니다
함수 getFocusedWindowfromperfent (parentwnd : hwnd) : hwnd;
var
다른 스레드,
버퍼 : dword;
idcurrthread : dword;
시작하다
Otherthread : = getWindowThreadProcessId (Parentwnd, @buffer);
idcurrthread : = getCurrentThreadId;
att
결과 : = GetFocus;
att
끝
또 다른
결과 : = GetFocus;
끝;
// 다른 응용 프로그램의 형태이더라도 현재 초점을 맞추는 하위 형태를 가져옵니다.
함수 getFocusedChildWindow : hwnd;
시작하다
결과 : = GetFocusedWindowfromepent (getforegroundwindow);
끝;
// 양식의 텍스트를 가져옵니다
함수 eigetwintext (nhandle : Integer) : 문자열;
var
pctext : array [0..32768] char;
시작하다
sendMessage (nhandle, wm_gettext, 32768, longint (@pctext));
결과 : = pctext;
끝;
// 양식의 텍스트를 설정합니다
절차 eisetwintext (nhandle : Integer; const snewtext : String);
시작하다
sendMessage (nhandle, wm_settext, length (snewtext), longint (pchar (trim (snewtext)));
끝;
// 양식의 클래스 이름을 반환합니다
함수 eigetwindowclass (const nhandle : hwnd) : 문자열;
var
szclassname : char의 배열 [0..255];
시작하다
getClassName (nhandle, szclassName, 255);
결과 : = szclassName;
끝;