WM_NCCALCSIZE mensaje
Se envía cuando se debe calcular el tamaño y la posición del área de cliente de una ventana. Al procesar este mensaje, una aplicación puede controlar el contenido del área cliente de la ventana cuando cambia el tamaño o la posición de la ventana.
Una ventana recibe este mensaje a través de la función WindowProc.
#define WM_NCCALCSIZE 0x0083
Parámetros
-
wParam
-
Si wParam es TRUE, especifica que la aplicación debe indicar qué parte del área cliente contiene información válida. El sistema copia la información válida en el área especificada dentro del área de cliente nueva.
Si wParam es FALSE, la aplicación no necesita indicar la parte válida del área cliente.
-
lParam
-
Si wParam es TRUE, lParam apunta a una estructura de NCCALCSIZE_PARAMS que contiene información que una aplicación puede usar para calcular el nuevo tamaño y la posición del rectángulo de cliente.
Si wParam es FALSE, lParam apunta a una estructura RECT . En la entrada, la estructura contiene el rectángulo de ventana propuesto para la ventana. Al salir, la estructura debe contener las coordenadas de pantalla del área cliente de ventana correspondiente.
Valor devuelto
Tipo: LRESULT
Si el parámetro wParam es FALSE, la aplicación debe devolver cero.
Si wParam es TRUE, la aplicación debe devolver cero o una combinación de los valores siguientes.
Si wParam es TRUE y una aplicación devuelve cero, se conserva el área cliente anterior y se alinea con la esquina superior izquierda del área de cliente nueva.
Código o valor devuelto | Descripción |
---|---|
|
Especifica que el área cliente de la ventana se va a conservar y alinear con la parte superior de la nueva posición de la ventana. Por ejemplo, para alinear el área de cliente con la esquina superior izquierda, devuelva los valores de WVR_ALIGNTOP y WVR_ALIGNLEFT . |
|
Especifica que el área cliente de la ventana se va a conservar y alinear con el lado derecho de la nueva posición de la ventana. Por ejemplo, para alinear el área de cliente con la esquina inferior derecha, devuelva los valores WVR_ALIGNRIGHT y WVR_ALIGNBOTTOM. |
|
Especifica que el área cliente de la ventana se va a conservar y alinear con el lado izquierdo de la nueva posición de la ventana. Por ejemplo, para alinear el área de cliente con la esquina inferior izquierda, devuelva los valores de WVR_ALIGNLEFT y WVR_ALIGNBOTTOM . |
|
Especifica que el área cliente de la ventana se va a conservar y alinear con la parte inferior de la nueva posición de la ventana. Por ejemplo, para alinear el área cliente con la esquina superior izquierda, devuelva los valores de WVR_ALIGNTOP y WVR_ALIGNLEFT . |
|
Se usa en combinación con cualquier otro valor, excepto WVR_VALIDRECTS, hace que la ventana se vuelva a dibujar completamente si el rectángulo del cliente cambia el tamaño horizontalmente. Este valor es similar al estilo de clase CS_HREDRAW |
|
Se usa en combinación con cualquier otro valor, excepto WVR_VALIDRECTS, hace que la ventana se vuelva a dibujar completamente si el rectángulo del cliente cambia el tamaño verticalmente. Este valor es similar al estilo de clase CS_VREDRAW |
|
Este valor hace que se vuelva a dibujar toda la ventana. Es una combinación de valores de WVR_HREDRAW y WVR_VREDRAW . |
|
Este valor indica que, al devolver de WM_NCCALCSIZE, los rectángulos especificados por los miembros rgrc[1] y rgrc[2] de la estructura NCCALCSIZE_PARAMS contienen rectángulos de área de origen y destino válidos, respectivamente. El sistema combina estos rectángulos para calcular el área de la ventana que se va a conservar. El sistema copia cualquier parte de la imagen de ventana que se encuentra dentro del rectángulo de origen y recorta la imagen en el rectángulo de destino. Ambos rectángulos están en coordenadas relativas a elementos primarios o relativos a la pantalla. Esta marca no se puede combinar con ninguna otra marca. Este valor devuelto permite a una aplicación implementar estrategias de conservación de área cliente más elaboradas, como centrar o conservar un subconjunto del área cliente. |
Observaciones
La ventana se puede volver a dibujar, dependiendo de si se especifica el estilo de clase CS_HREDRAW o CS_VREDRAW. Este es el procesamiento predeterminado compatible con versiones anteriores de este mensaje por la función DefWindowProc (además del cálculo habitual del rectángulo de cliente descrito en la tabla anterior).
Cuando wParam es TRUE, simplemente devolver 0 sin procesar los rectángulos NCCALCSIZE_PARAMS hará que el área de cliente cambie el tamaño de la ventana, incluido el marco de la ventana. Esto quitará el marco de la ventana y subtítulo elementos de la ventana, dejando solo el área de cliente mostrada.
A partir de Windows Vista, quitar el marco estándar simplemente devolviendo 0 cuando wParam es TRUE no afecta a los fotogramas que se extienden al área cliente mediante la función DwmExtendFrameIntoClientArea . Solo se quitará el marco estándar.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible |
Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible |
Windows 2000 Server [solo aplicaciones de escritorio] |
Encabezado |
|
Consulte también
-
Referencia
-
Conceptual
-
Otros recursos