Share via


Método IInkRenderer::MeasureStroke (msinkaut.h)

Calcula o retângulo no contexto do dispositivo que conteria um traço se ele fosse desenhado com o objeto InkRenderer usando o método DrawStroke .

Sintaxe

HRESULT MeasureStroke(
  [in]           IInkStrokeDisp        *Stroke,
  [in, optional] IInkDrawingAttributes *DrawingAttributes,
  [out, retval]  IInkRectangle         **Rectangle
);

Parâmetros

[in] Stroke

O traço a ser medido.

[in, optional] DrawingAttributes

Opcional. O InkDrawingAttributes a ser usado ao calcular o retângulo, que substitui os atributos de desenho no traço. O valor padrão é NULL, o que significa que o traço é medido usando seus próprios atributos de desenho.

[out, retval] Rectangle

Quando esse método retorna, contém um ponteiro para o retângulo no contexto do dispositivo que conteria o traço se o traço fosse desenhado com o método DrawStroke do objeto InkRenderer . O traço deve conter coordenadas x e y para calcular o retângulo. Caso contrário, o método retorna um retângulo vazio.

Retornar valor

Esse método pode retornar um desses valores.

Código de retorno Descrição
S_OK
Êxito.
REGDB_E_CLASSNOTREG
O objeto InkRectangle não está registrado no sistema.
E_INK_INCOMPATIBLE_OBJECT

IInkStrokeDisp não aponta para um objeto InkDisp compatível ou drawingAttributes é um parâmetro de entrada inválido.

E_INK_EXCEPTION
Ocorreu uma exceção dentro do método .
E_POINTER
Um parâmetro continha um ponteiro inválido.
E_INVALIDARG
Identificador de exibição inválido.
E_UNEXPECTED
Parâmetro inesperado ou tipo de propriedade.

Comentários

Isso só será preciso se você passar os mesmos argumentos para MeasureStroke e DrawStroke.

Como a caixa delimitadora é afetada pela largura da caneta, essa largura é dimensionada adequadamente para a transformação de exibição do InkRenderer. Para fazer isso, a largura da caneta é multiplicada pela raiz quadrada do determinante da transformação de exibição. A altura e a largura da caixa delimitadora são expandidas pela metade dessa quantidade em cada direção e os lados direito e inferior são incrementados por um.

Por exemplo, considere que a largura da caneta é originalmente 53, a raiz quadrada do determinante da transformação de exibição é 50 e a caixa delimitadora é (0, 0, 1000, 1000). O ajuste de largura da caneta para a caixa delimitadora em cada direção é calculado como (53 * 50) / 2, e os lados direito e inferior são incrementados por um. Isso resulta em uma caixa delimitadora renderizada de (-1325, -1325, 2326, 2326).

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP Tablet PC Edition [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Nenhum compatível
Plataforma de Destino Windows
Cabeçalho msinkaut.h
Biblioteca InkObj.dll

Confira também

Método Draw [Classe InkRenderer]

Método DrawStroke

Iinkrenderer

IInkStrokeDisp Interface

Classe InkRenderer

Método Measure