Bagikan melalui


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

Lihat juga

IDWriteTextLayout