Windows apps
Collapse the table of content
Expand the table of content
Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

IDWriteTextLayout::HitTestTextRange method

The application calls this function to get a set of hit-test metrics corresponding to a range of text positions. One of the main usages is to implement highlight selection of the text string. The function returns E_NOT_SUFFICIENT_BUFFER, which is equivalent to HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER), when the buffer size of hitTestMetrics is too small to hold all the regions calculated by the function. In this situation, the function sets the output value *actualHitTestMetricsCount to the number of geometries calculated. The application is responsible for allocating a new buffer of greater size and calling the function again. A good value to use as an initial value for maxHitTestMetricsCount may be calculated from the following equation: maxHitTestMetricsCount = lineCount * maxBidiReorderingDepth where lineCount is obtained from the value of the output argument *actualLineCount (from the function IDWriteTextLayout::GetLineLengths), and the maxBidiReorderingDepth value from the DWRITE_TEXT_METRICS structure of the output argument *textMetrics (from the function IDWriteFactory::CreateTextLayout).

Syntax


virtual HRESULT HitTestTextRange(
                  UINT32                   textPosition,
                  UINT32                   textLength,
                  FLOAT                    originX,
                  FLOAT                    originY,
  [out, optional] DWRITE_HIT_TEST_METRICS * hitTestMetrics,
                  UINT32                   maxHitTestMetricsCount,
  [out]           UINT32                  * actualHitTestMetricsCount
) = 0;

Parameters

textPosition

Type: UINT32

The first text position of the specified range.

textLength

Type: UINT32

The number of positions of the specified range.

originX

Type: FLOAT

The origin pixel location X at the left of the layout box. This offset is added to the hit-test metrics returned.

originY

Type: FLOAT

The origin pixel location Y at the top of the layout box. This offset is added to the hit-test metrics returned.

hitTestMetrics [out, optional]

Type: DWRITE_HIT_TEST_METRICS*

When this method returns, contains a pointer to a buffer of the output geometry fully enclosing the specified position range. The buffer must be at least as large as maxHitTestMetricsCount.

maxHitTestMetricsCount

Type: UINT32

Maximum number of boxes hitTestMetrics could hold in its buffer memory.

actualHitTestMetricsCount [out]

Type: UINT32*

Actual number of geometries hitTestMetrics holds in its buffer memory.

Return value

Type: HRESULT

If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.

Requirements

Minimum supported client

Windows 7, Windows Vista with SP2 and Platform Update for Windows Vista [desktop apps | Windows Store apps]

Minimum supported server

Windows Server 2008 R2, Windows Server 2008 with SP2 and Platform Update for Windows Server 2008 [desktop apps | Windows Store apps]

Minimum supported phone

Windows Phone 8.1 [Windows Phone Silverlight 8.1 and Windows Runtime apps]

Header

Dwrite.h

Library

Dwrite.lib

DLL

Dwrite.dll

See also

IDWriteTextLayout

 

 

Show:
© 2017 Microsoft