METODE IDWriteTextLayout::HitTestTextRange (dwrite.h)
Aplikasi memanggil fungsi ini untuk mendapatkan sekumpulan metrik hit-test yang sesuai dengan rentang posisi teks. Salah satu penggunaan utama adalah menerapkan pemilihan sorotan dari string teks.
Fungsi mengembalikan E_NOT_SUFFICIENT_BUFFER, yang setara dengan HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER), ketika ukuran buffer hitTestMetrics terlalu kecil untuk menahan semua wilayah yang dihitung oleh fungsi. Dalam situasi ini, fungsi menetapkan nilai output *actualHitTestMetricsCount ke jumlah geometri yang dihitung.
Aplikasi ini bertanggung jawab untuk mengalokasikan buffer baru dengan ukuran yang lebih besar dan memanggil fungsi lagi.
Nilai yang baik untuk digunakan sebagai nilai awal untuk maxHitTestMetricsCount dapat dihitung dari persamaan berikut:
maxHitTestMetricsCount = lineCount * maxBidiReorderingDepth
di mana lineCount diperoleh dari nilai argumen output *actualLineCount (dari fungsi IDWriteTextLayout::GetLineLengths), dan nilai maxBidiReorderingDepth dari struktur DWRITE_TEXT_METRICS argumen output *textMetrics (dari fungsi IDWriteFactory::CreateTextLayout).
Sintaks
HRESULT HitTestTextRange(
UINT32 textPosition,
UINT32 textLength,
FLOAT originX,
FLOAT originY,
[out, optional] DWRITE_HIT_TEST_METRICS *hitTestMetrics,
UINT32 maxHitTestMetricsCount,
[out] UINT32 *actualHitTestMetricsCount
);
Parameter
textPosition
Jenis: UINT32
Posisi teks pertama dari rentang yang ditentukan.
textLength
Jenis: UINT32
Jumlah posisi rentang yang ditentukan.
originX
Jenis: FLOAT
Lokasi piksel asal X di sebelah kiri kotak tata letak. Offset ini ditambahkan ke metrik hit-test yang dikembalikan.
originY
Jenis: FLOAT
Lokasi piksel asal Y di bagian atas kotak tata letak. Offset ini ditambahkan ke metrik hit-test yang dikembalikan.
[out, optional] hitTestMetrics
Jenis: DWRITE_HIT_TEST_METRICS*
Ketika metode ini kembali, berisi penunjuk ke buffer geometri output yang sepenuhnya mencakup rentang posisi yang ditentukan. Buffer harus setidaknya sebesar maxHitTestMetricsCount.
maxHitTestMetricsCount
Jenis: UINT32
Jumlah maksimum kotak hitTestMetrics dapat bertahan dalam memori buffernya.
[out] actualHitTestMetricsCount
Jenis: UINT32*
Jumlah aktual geometri hitTestMetrics bertahan dalam memori buffernya.
Nilai kembali
Jenis: HRESULT
Jika metode ini berhasil, metode akan mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 7, Windows Vista dengan SP2 dan Pembaruan Platform untuk Windows Vista [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2008 R2, Windows Server 2008 dengan SP2 dan Pembaruan Platform untuk Windows Server 2008 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | dwrite.h |
Pustaka | Dwrite.lib |
DLL | Dwrite.dll |