commctrl.h

Mensaje TTM_ADJUSTRECT

Definición

TTM_ADJUSTRECT  
wParam = (WPARAM)(BOOL)fOperation;  
lParam = (LPARAM) (LPRECT) lpRect; 

El mensaje TTM_ADJUSTRECT calcula el rectángulo de texto a mostrar de un control tooltip, o el rectángulo de ventana tooltip necesario para mostrar un rectángulo de texto especificado.

Descripción

fOperation
Valor que especifica que operación se debe realizar. Si es TRUE, lParam se usa para especificar un tectángulo de texto a mostrar y recibe el rectángulo de ventana correspondiente. Si es FALSE, lParam se usa para especificar un rectángulo de ventana y recibe el rectángulo de texto a mostrar correspondiente.
lpRect
Puntero a estructura RECT para contener el rectángulo de ventana de tooltip o el rectángulo de texto a mostrar.

Valor de retorno

Devuelve un valor distinto de cero si el rectángulo fue ajustado con éxito, y devuelve cero si se produjo un error.

Observaciones

Este mensaje es especialmente útil cuando se usa con un control tooltip para mostrar el texto completo de una cadena que generalmente se truncaría. Se usa generalmente con controles listview y treeview. Normalmente se envia este mensaje en respuesta a un código de notificación TTN_SHOW de modo que es posible colocar el control tooltip correctamente.

El rectángulo de ventana de tooltip es algo mayor que el rectángulo de texto a mostrar que limita la cadena del tooltip. El origen de la ventana también está desplazado a la izquierda y arriba del rectángulo de texto a mostrar. Para colocar el rectángulo de texto se debe calcular el rectángulo de ventana correspondiente y usar ese rectángulo para colocar el tooltip. TTM_ADJUSTRECT se encarga de esos cálculos.

Si se asigna TRUE a wParam, TTM_ADJUSTRECT toma el tamaño y posición del rectángulo de texto del tooltip deseado, y devuelve el tamaño y posición de la ventana tooltip necesaria para mostrar el texto en la posición especificada. Si se asigna FALSE a wParam, se puede especificar un rectángulo de ventana tooltip y TTM_ADJUSTRECT devolverá el tamaño y posición de sy rectángulo de texto.

El ejemplo siguiente ilustra el uso del mensaje TTM_ADJUSTRECT para colocar un control tooltip que muestre el texto completo de la cadena de un control en lugar de una cadena truncada. La función definida por la aplicación GetMyItemRect devuelve el rectángulo de texto que será encesario para mostrar el texto del tooltip directamente sobre la cadena truncada. Los detalles de cómo se implementa esta función dependerán de cada control. TTM_ADJUSTRECT se usa para enviar este rectángulo de texto al control tooltip. Devuelve el tamaño y posición adecuados del rectángulo de ventana que se usa para colocar la ventana tooltip.

case TTN_SHOW:

if (MyStringIsTruncated) {
    RECT rc;
	
    GetMyItemRect(&rc);
    SendMessage(hwndToolTip, TTM_ADJUSTRECT, TRUE, (LPARAM)&rc);
    SetWindowPos(hwndToolTip,
                 NULL,
                 rc.left, rc.top,
                 0, 0,
                 SWP_NOSIZE|SWP_NOZORDER|SWP_NOACTIVATE);
}