Método ITextServices::TxDraw (textserv.h)
Dibuja el objeto de servicios de texto.
Sintaxis
HRESULT TxDraw(
[in] DWORD dwDrawAspect,
LONG lindex,
[in] void *pvAspect,
[in] DVTARGETDEVICE *ptd,
[in] HDC hdcDraw,
[in] HDC hicTargetDev,
[in] LPCRECTL lprcBounds,
[in] LPCRECTL lprcWBounds,
[in] LPRECT lprcUpdate,
BOOL(* )(DWORD) pfnContinue,
DWORD dwContinue,
LONG lViewId
);
Parámetros
[in] dwDrawAspect
Tipo: DWORD
Especifica el aspecto que se va a dibujar, es decir, cómo se representará el objeto. El aspecto de dibujo puede ser uno de los valores siguientes.
lindex
Tipo: LONG
No compatible.
[in] pvAspect
Tipo: void*
Información sobre optimizaciones de dibujo.
[in] ptd
Tipo: DVTARGETDEVICE*
Dispositivo de destino.
[in] hdcDraw
Tipo: HDC
Representación del contexto del dispositivo.
[in] hicTargetDev
Tipo: HDC
Contexto de información de destino.
[in] lprcBounds
Tipo: LPCRECTL
Rectángulo delimitador (cliente).
[in] lprcWBounds
Tipo: LPCRECTL
Rectángulo de recorte para metarchivos.
[in] lprcUpdate
Tipo: LPRECT
Región de actualización dentro de lprcBounds.
pfnContinue
Tipo: DEVOLUCIÓN DE LLAMADA BOOL*
No compatible.
dwContinue
Tipo: DWORD
Parámetro que se va a pasar para continuar la función.
lViewId
Tipo: LONG
Especifica la vista que se va a dibujar.
Valor | Significado |
---|---|
|
Dibuje la vista activa en lugar. |
|
Dibujar una vista distinta de la vista activa en lugar; por ejemplo, una vista previa de impresión. |
Valor devuelto
Tipo: HRESULT
El valor devuelto suele ser S_OK.
Comentarios
Este método representa el objeto de servicios de texto. Acepta los mismos parámetros que el método IViewObject::D raw correspondiente en OLE, con los parámetros extra lprcUpdate y lViewId . Se puede usar mientras el host está activo o inactivo.
El parámetro lprcBounds proporciona el rectángulo que se va a representar, también denominado rectángulo de cliente. Este rectángulo representa la posición y la extensión de toda la imagen del objeto de servicios de texto que se va a dibujar. Se expresa en el sistema de coordenadas lógico de hdcDraw. Si lprcBounds es NULL , el control debe estar activo. En este caso, el objeto de servicios de texto debe representar la vista activa en contexto (es decir, el rectángulo de cliente que se puede obtener llamando a TxGetClientRect en el host).
Si el parámetro lprcUpdate no es NULL, proporciona el rectángulo para actualizar dentro de ese rectángulo de cliente, en el sistema de coordenadas lógico de hdcDraw. Si lprcUpdate es NULL, se debe pintar todo el rectángulo del cliente.
El objeto de servicios de texto debe representarse con el factor de zoom adecuado, que se puede obtener del rectángulo de cliente y el tamaño nativo proporcionado por TxGetExtent. Para obtener una explicación del factor de zoom, consulte TxGetExtent.
Comentarios generales sobre hosts OLE e ITextServices::TxDraw (también para ITextServices::OnTxSetCursor e ITextServices::TxQueryHitPoint):
Un host OLE puede llamar al método ITextServices::TxDraw en cualquier momento con cualquier contexto de dispositivo de representación o rectángulo de cliente. Un objeto OLE que está inactivo solo conserva una extensión. Para obtener el rectángulo en el que se va a representar, el host llama al método IViewObject::D raw . Este rectángulo solo es válido para el ámbito de ese método. Por lo tanto, el mismo control se puede representar consecutivamente en diferentes rectángulos y contextos de dispositivo diferentes, por ejemplo, porque se muestra simultáneamente en diferentes vistas de la pantalla.
Normalmente, el rectángulo de cliente y el contexto del dispositivo pasados a ITextServices::TxDraw no deben almacenarse en caché, ya que esto obligaría al objeto de servicios de texto a recalcular las líneas de cada dibujo, lo que impediría el rendimiento. En su lugar, el objeto de servicios de texto podría almacenar en caché la información que se calcula para un rectángulo de cliente específico y el contexto del dispositivo (por ejemplo, saltos de línea). Sin embargo, en la siguiente llamada a ITextServices::TxDraw, se debe comprobar la validez de la información almacenada en caché antes de que se use y se debe volver a generar la información actualizada, si es necesario.
Además, tenga mucho cuidado cuando el control esté activo en contexto. Este problema es aún más complejo, ya que se puede llamar a ITextServices::TxDraw para representar otras vistas que la que está activa en contexto. Es decir, es posible que el rectángulo de cliente pasado a ITextServices::TxDraw no sea el mismo que el activo (pasado a ITextServices::OnTxInPlaceActivate y obtenido a través de TxGetClientRect en el host).
Requisitos
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
Otros recursos
Referencia