다음을 통해 공유


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를 UNICODE 전처리기 상수의 정의에 따라 이 함수의 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에서 도입됨)

참고 항목

개념

GetWindowTextLength

참조

SetWindowText

WM_GETTEXT

windows