winuser.h


CreateCaret

La función CreateCaret crea una figura nueva para un caret y asigna su propiedad a la ventana especificada. La figura del caret puede ser una línea, un bloque o un mapa de bits.

Sintaxis

BOOL CreateCaret(
    HWND hWnd,       // manipulador de la ventana propietaria
    HBITMAP hBitmap, // manipulador a mapa de bits que define el caret
    int nWidth,      // ancho del caret
    int nHeight      // altura del caret
   );

Parámetros

hWnd: identifica la ventana a la que pertenece el caret.

hBitmap: identifica el mapa de bits que define la figura del caret. Si este parámetro es NULL, el caret será sólido. Si este parámetro es (HBITMAP) 1, el caret será gris. Si es un manipulador de mapa de bits, el caret será el mapa de bits especificado. El manipulador de mapa de bits debe haber sido creado mediante las funciones CreateBitmap, CreateDIBitmap o LoadBitmap.

Si hBitmap es un manipulador de mapa de bits, CreateCaret ignorará los parámetros nWidth y nHeight, ya que el mapa de bits define su propia anchura y altura.

nWidth: especifica la anchura del carte en unidades lógicas. Si este parámetro es cero, la anchura será igual a la anchura del borde de la ventana definida por el sistema. Si hBitmap es un manipulador de ventana, CreateCaret ignorará este parámetro.

nHeight: especifica la altura del caret en unidades lógicas. Si este parámetro es cero, la altura será igual a la altura del borde de la ventana definida por el sistema. Si hBitmap es un manipulador de ventana, CreateCaret ignorará este parámetro.

Valor de retorno

Si la función tiene éxito, el valor de retorno será distinto de cero.

Si la función falla, el valor de retorno es cero. Para obtener información adicional sobre el error, llamar a GetLastError.

Observaciones

Los parámetros nWidth y nHeight especifican la anchura y altura del caret en unidades lógicas; la anchura y altura exactas, en pixels, dependen del modo de proyección de la ventana.

CreateCaret destruye automáticamente la figura de caret anterior, si la hay, sin tener en cuenta qué ventana tiene su propiedad. El caret se ocultará hasta que la aplicación llame a la función ShowCaret para hacerlo visible.

El caret es un recurso compartido, sólo existe un caret en el sistema. Una ventana debe crear un caret sólo cuando tiene el foco del teclado o si está activa. La ventana también debe destruir el caret antes de perder el foco del teclado o de quedar inactiva.

Se pueden recuperar los valores de anchura y altura del borde de la ventana del sistema usando la función GetSystemMetrics, especificando los valores SM_CXBORDER y SM_CYBORDER. Usar la anchura o altura del borde de ventana garantiza que el caret será visible en una pantalla de alta resolución.