Método ITextServices::TxGetNaturalSize (textserv.h)

Permite que um controle seja redimensionado para que ele se ajuste adequadamente ao conteúdo.

Sintaxe

HRESULT TxGetNaturalSize(
            DWORD          dwAspect,
            HDC            hdcDraw,
            HDC            hicTargetDev,
            DVTARGETDEVICE *ptd,
            DWORD          dwMode,
            const SIZEL    *psizelExtent,
  [in, out] LONG           *pwidth,
  [in, out] LONG           *pheight
);

Parâmetros

dwAspect

Tipo: DWORD

O aspecto do desenho. Pode ser qualquer um dos valores da enumeração DVASPECT .

hdcDraw

Tipo: HDC

O contexto do dispositivo no qual o desenho ocorre.

hicTargetDev

Tipo: HDC

O contexto do dispositivo para o qual o texto deve ser formatado (ou seja, para WYSIWYG).

ptd

Tipo: DVTARGETDEVICE*

Mais informações sobre o dispositivo de destino.

dwMode

Tipo: DWORD

O tipo de ajuste solicitado. Pode ser um dos seguintes.

Valor Significado
TXTNS_EMU
Use EMUs (Unidades de Métrica) em inglês em vez de pixels como unidades de medição para os parâmetros desse método.
TXTNS_FITTOCONTENT
Redimensione o controle para ajustar todo o texto formatando o texto para a largura que é passada. O objeto de serviços de texto retorna a altura de todo o texto e a largura da linha mais larga.

Por exemplo, isso deve ser feito quando o usuário clica duas vezes em um dos identificadores do controle.

TXTNS_FITTOCONTENT2
Redimensione o controle para que ele se ajuste ao conteúdo recuado.
TXTNS_FITTOCONTENT3
Redimensione o controle para que ele se ajuste ao conteúdo recuado e ao espaço em branco à direita.
TXTNS_FITTOCONTENTWSP
Redimensione o controle para que ele se ajuste ao conteúdo não recuado e ao espaço em branco à direita.
TXTNS_INCLUDELASTLINE
Para um controle de texto sem formatação, inclua a altura do retorno de carro final ao calcular o tamanho.
TXTNS_ROUNDTOLINE
Redimensione o controle para mostrar um número integral de linhas (nenhuma linha é recortada). Formate texto suficiente para preencher a largura e a altura passadas e retorne uma altura arredondada para o limite de linha mais próximo.
Nota A largura e a altura passadas e retornadas correspondem ao retângulo de exibição. O host deve se ajustar novamente ao retângulo do cliente, conforme necessário. Como esses valores representam a extensão do objeto de texto, eles são entrada e saída em coordenadas HIMETRIC (cada unidade HIMETRIC é 0,01 milímetro) e a medição não inclui nenhum fator de zoom. Para obter uma discussão sobre o fator zoom, consulte TxGetExtent.
 

psizelExtent

Tipo: const SIZEL*

Não há suporte.

[in, out] pwidth

Tipo: LONG*

A largura do ajuste definido por dwMode.

[in, out] pheight

Tipo: LONG*

A altura do ajuste definido por dwMode.

Retornar valor

Tipo: HRESULT

Se o método for bem-sucedido, o valor retornado será S_OK.

Se os serviços de texto não puderem ativar o objeto, o valor retornado será um dos seguintes códigos HRESULT . Para obter mais informações sobre códigos de erro COM, consulte Tratamento de erros em COM.

Código de retorno Descrição
E_FAIL
Não é possível determinar o tamanho correto.
E_INVALIDARG
Um ou mais argumentos não são válidos.
E_OUTOFMEMORY
Memória insuficiente.

Comentários

Os quatro primeiros parâmetros são semelhantes aos parâmetros equivalentes em ITextServices::TxDraw e fornecem as mesmas informações. No caso em que as linhas devem ser recalculadas, ela deve usar esses valores da mesma maneira que em ITextServices::TxDraw.

Os parâmetros pwidth e pheight são parâmetros de entrada/saída. O host passa a largura e a altura provisórias da extensão natural do objeto de texto. O objeto de serviços de texto compara esses valores com seu estado armazenado em cache atual e, se diferente, recalcular linhas. Em seguida, ele calcula e retorna o tamanho natural, conforme especificado por dwMode.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho textserv.h
DLL Msftedit.dll

Confira também

Conceitual

DVTARGETDEVICE

ITextServices

Outros recursos

Referência

TxDraw

TxGetExtent

Controles de edição avançada sem janelas