GetWindowTextA 함수(winuser.h)
지정된 창의 제목 표시줄 텍스트(있는 경우)를 버퍼에 복사합니다. 지정한 창이 컨트롤이면 컨트롤의 텍스트가 복사됩니다. 그러나 GetWindowText 는 다른 애플리케이션에서 컨트롤의 텍스트를 검색할 수 없습니다.
구문
int GetWindowTextA(
[in] HWND hWnd,
[out] LPSTR lpString,
[in] int nMaxCount
);
매개 변수
[in] hWnd
형식: HWND
텍스트를 포함하는 창 또는 컨트롤에 대한 핸들입니다.
[out] lpString
형식: LPTSTR
텍스트를 받을 버퍼입니다. 문자열이 버퍼보다 길거나 길면 문자열이 잘리고 null 문자로 종료됩니다.
[in] nMaxCount
형식: int
null 문자를 포함하여 버퍼에 복사할 최대 문자 수입니다. 텍스트가 이 제한을 초과하면 잘립니다.
반환 값
형식: int
함수가 성공하면 반환 값은 종료 null 문자를 포함하지 않고 복사된 문자열의 길이(문자)입니다. 창에 제목 표시줄이나 텍스트가 없거나 제목 표시줄이 비어 있거나 창 또는 컨트롤 핸들이 유효하지 않은 경우 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
이 함수는 다른 애플리케이션에서 편집 컨트롤의 텍스트를 검색할 수 없습니다.
설명
대상 창이 현재 프로세스에서 소유하는 경우 GetWindowText 는 지정된 창 또는 컨트롤에 WM_GETTEXT 메시지를 보냅니다. 대상 창이 다른 프로세스에서 소유하고 있고 캡션 있는 경우 GetWindowText는 텍스트를 캡션 창을 검색합니다. 창에 캡션 없는 경우 반환 값은 null 문자열입니다. 이 동작은 의도된 것입니다. 대상 창을 소유하는 프로세스가 응답하지 않는 경우 애플리케이션에서 응답하지 않고 GetWindowText 를 호출할 수 있습니다. 그러나 대상 창이 응답하지 않고 호출 애플리케이션에 속하는 경우 GetWindowText 로 인해 호출 애플리케이션이 응답하지 않습니다.
다른 프로세스에서 컨트롤의 텍스트를 검색하려면 GetWindowText를 호출하는 대신 직접 WM_GETTEXT 메시지를 보냅니다.
예제
다음 예제 코드는 GetWindowTextA에 대한 호출을 보여 줍니다.
hwndCombo = GetDlgItem(hwndDlg, IDD_COMBO);
cTxtLen = GetWindowTextLength(hwndCombo);
// Allocate memory for the string and copy
// the string into the memory.
pszMem = (PSTR) VirtualAlloc((LPVOID) NULL,
(DWORD) (cTxtLen + 1), MEM_COMMIT,
PAGE_READWRITE);
GetWindowText(hwndCombo, pszMem,
cTxtLen + 1);
컨텍스트에서 이 예제를 보려면 메시지 보내기를 참조하세요.
참고
winuser.h 헤더는 GETWindowText를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | winuser.h(Windows.h 포함) |
라이브러리 | User32.lib |
DLL | User32.dll |
API 세트 | ext-ms-win-ntuser-window-l1-1-4(Windows 10 버전 10.0.14393에 도입됨) |
추가 정보
개념
참조