Compartir a través de


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

Permite cambiar el tamaño de un control para que se ajuste adecuadamente a su contenido.

Sintaxis

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

Aspecto del dibujo. Puede ser cualquiera de los valores de la enumeración DVASPECT .

hdcDraw

Tipo: HDC

Contexto del dispositivo en el que se produce el dibujo.

hicTargetDev

Tipo: HDC

Contexto del dispositivo para el que se debe dar formato al texto (es decir, para WYSIWYG).

ptd

Tipo: DVTARGETDEVICE*

Más información sobre el dispositivo de destino.

dwMode

Tipo: DWORD

Tipo de ajuste solicitado. Puede ser uno de los siguientes.

Valor Significado
TXTNS_EMU
Use unidades métricas en inglés (EMU) en lugar de píxeles como unidades de medición para los parámetros de este método.
TXTNS_FITTOCONTENT
Cambie el tamaño del control para ajustar todo el texto mediante el formato del texto al ancho que se pasa. El objeto de servicios de texto devuelve el alto de todo el texto y el ancho de la línea más ancha.

Por ejemplo, esto se debe hacer cuando el usuario hace doble clic en uno de los identificadores del control.

TXTNS_FITTOCONTENT2
Cambie el tamaño del control para que se ajuste al contenido con sangría.
TXTNS_FITTOCONTENT3
Cambie el tamaño del control para que se ajuste al contenido con sangría y al espacio en blanco final.
TXTNS_FITTOCONTENTWSP
Cambie el tamaño del control para que se ajuste al contenido sin sangr y al espacio en blanco final.
TXTNS_INCLUDELASTLINE
Para un control de texto sin formato, incluya el alto del retorno de carro final al calcular el tamaño.
TXTNS_ROUNDTOLINE
Cambie el tamaño del control para mostrar un número entero de líneas (no se recorta ninguna línea). Dar formato al texto suficiente para rellenar el ancho y alto que se pasa y, a continuación, devolver un alto redondeado al límite de línea más cercano.
Nota El ancho y alto pasados y devueltos corresponden al rectángulo de vista. El host debe volver a ajustarse al rectángulo del cliente según sea necesario. Dado que estos valores representan la extensión del objeto de texto, son de entrada y salida en coordenadas HIMETRIC (cada unidad HIMETRIC es .01 milímetros) y la medición no incluye ningún factor de zoom. Para obtener una explicación del factor de zoom, consulte TxGetExtent.
 

psizelExtent

Tipo: const SIZEL*

No compatible.

[in, out] pwidth

Tipo: LONG*

Ancho del ajuste definido por dwMode.

[in, out] pheight

Tipo: LONG*

Alto del ajuste definido por dwMode.

Valor devuelto

Tipo: HRESULT

Si el método se realiza correctamente, el valor devuelto se S_OK.

Si los servicios de texto no pudieron activar el objeto, el valor devuelto es uno de los siguientes códigos HRESULT . Para obtener más información sobre los códigos de error COM, vea Control de errores en COM.

Código devuelto Descripción
E_FAIL
No se puede determinar el tamaño correcto.
E_INVALIDARG
Uno o varios argumentos no son válidos.
E_OUTOFMEMORY
Memoria insuficiente.

Comentarios

Los cuatro primeros parámetros son similares a los parámetros equivalentes de ITextServices::TxDraw y proporcionan la misma información. En el caso de que se deben recalcular las líneas, debe usar estos valores de las mismas maneras que en ITextServices::TxDraw.

Los parámetros pwidth y pheight son parámetros in/out. El host pasa el ancho provisional y el alto de la extensión natural del objeto de texto. El objeto de servicios de texto compara estos valores con su estado almacenado en caché actual y, si es diferente, recalcula las líneas. A continuación, calcula y devuelve el tamaño natural, tal y como especifica dwMode.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado textserv.h
Archivo DLL Msftedit.dll

Consulte también

Conceptual

DVTARGETDEVICE

ITextServices

Otros recursos

Referencia

TxDraw

TxGetExtent

Controles de edición enriquecida sin ventanas