Fungsi GetWindowTextA (winuser.h)
Menyalin teks bilah judul jendela yang ditentukan (jika memilikinya) ke dalam buffer. Jika jendela yang ditentukan adalah kontrol, teks kontrol akan disalin. Namun, GetWindowText tidak dapat mengambil teks kontrol di aplikasi lain.
Sintaks
int GetWindowTextA(
[in] HWND hWnd,
[out] LPSTR lpString,
[in] int nMaxCount
);
Parameter
[in] hWnd
Jenis: HWND
Handel ke jendela atau kontrol yang berisi teks.
[out] lpString
Jenis: LPTSTR
Buffer yang akan menerima teks. Jika string panjang atau lebih panjang dari buffer, string dipotong dan dihentikan dengan karakter null.
[in] nMaxCount
Jenis: int
Jumlah maksimum karakter yang akan disalin ke buffer, termasuk karakter null. Jika teks melebihi batas ini, teks akan terpotong.
Nilai kembali
Jenis: int
Jika fungsi berhasil, nilai yang dikembalikan adalah panjang, dalam karakter, dari string yang disalin, tidak termasuk karakter null yang mengakhiri. Jika jendela tidak memiliki bilah judul atau teks, jika bilah judul kosong, atau jika jendela atau handel kontrol tidak valid, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Fungsi ini tidak dapat mengambil teks kontrol edit di aplikasi lain.
Keterangan
Jika jendela target dimiliki oleh proses saat ini, GetWindowText menyebabkan pesan WM_GETTEXT dikirim ke jendela atau kontrol yang ditentukan. Jika jendela target dimiliki oleh proses lain dan memiliki caption, GetWindowText mengambil jendela caption teks. Jika jendela tidak memiliki caption, nilai yang dikembalikan adalah string null. Perilaku ini secara desain. Ini memungkinkan aplikasi untuk memanggil GetWindowText tanpa menjadi tidak responsif jika proses yang memiliki jendela target tidak merespons. Namun, jika jendela target tidak merespons dan milik aplikasi panggilan, GetWindowText akan menyebabkan aplikasi panggilan menjadi tidak responsif.
Untuk mengambil teks kontrol dalam proses lain, kirim pesan WM_GETTEXT secara langsung alih-alih memanggil GetWindowText.
Contoh
Contoh kode berikut menunjukkan panggilan ke 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);
Untuk melihat contoh ini dalam konteks, lihat Mengirim Pesan.
Catatan
Header winuser.h mendefinisikan GetWindowText sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosedur UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | winuser.h (termasuk Windows.h) |
Pustaka | User32.lib |
DLL | User32.dll |
Set API | ext-ms-win-ntuser-window-l1-1-4 (diperkenalkan dalam Windows 10, versi 10.0.14393) |
Lihat juga
Konseptual
Referensi