Área no cliente
El sistema envía un mensaje WM_NCPAINT a la ventana cada vez que se debe actualizar una parte del área no cliente de la ventana, como la barra de título, la barra de menús o el marco de ventana. El sistema también puede enviar otros mensajes para dirigir una ventana para actualizar una parte de su área de cliente; por ejemplo, cuando una ventana se activa o inactiva, envía el mensaje WM_NCACTIVATE para actualizar su barra de título. En general, no se recomienda procesar estos mensajes para ventanas estándar, ya que la aplicación debe poder dibujar todas las partes necesarias del área no cliente para la ventana. Por este motivo, la mayoría de las aplicaciones pasan estos mensajes a DefWindowProc para el procesamiento predeterminado.
Una aplicación que crea áreas no cliente personalizadas para sus ventanas debe procesar estos mensajes. Al hacerlo, la aplicación debe usar un contexto de dispositivo de ventana para llevar a cabo el dibujo en la ventana. El contexto del dispositivo de ventana permite que la aplicación dibuje todas las partes de la ventana, incluido el área no cliente. Una aplicación recupera un contexto de dispositivo de ventana mediante la función GetWindowDC o GetDCEx y, cuando se completa el dibujo, debe liberar el contexto del dispositivo de ventana mediante la función ReleaseDC .
El sistema mantiene una región de actualización para el área que no es cliente. Cuando una aplicación recibe un mensaje de WM_NCPAINT , el parámetro wParam contiene un identificador para una región que define las dimensiones de la región de actualización. La aplicación puede usar el identificador para combinar la región de actualización con la región de recorte para el contexto del dispositivo de ventana. El sistema no combina automáticamente la región de actualización al recuperar el contexto del dispositivo de ventana a menos que la aplicación use GetDCEx y especifique el identificador de región y la marca de DCX_INTERSECTRGN. Si la aplicación no combina la región de actualización, solo se recortan las operaciones de dibujo que se extenderían fuera de la ventana. La aplicación no es responsable de borrar la región de actualización, independientemente de si usa la región.
Si una aplicación procesa el mensaje de WM_NCACTIVATE , después de procesarlo debe devolver TRUE para dirigir al sistema para completar el cambio de la ventana activa. Si la ventana se minimiza cuando la aplicación recibe el mensaje de WM_NCACTIVATE , debe pasar el mensaje a DefWindowProc. En tales casos, la función predeterminada vuelve a dibujar la etiqueta del icono.