MDI C-Win32

Hola :
Mi nombre es rodrigo y estoy programando una aplicación MDI en C Win32. La cosa es que todo funciona bien hasta introducir una barra de estado a la Ventana de marco (frame Window), ya que comienzan a ocurrir cosas extrañas: Al maximizar, minimizar o en general al cambiar de tamaño la ventana de marco, se cierran las ventanas Child abiertas. Por otro lado al mover una ventana Child sobre la barra de herramientas, ésta no se redibuja.
He estado pensando y creo que como tanto la ventana MDI (que ocupa toda el área cliente de la ventana de marco) como la barra de herramientas son ambas hijas de la ventana de marco, se produce un conflicto entre ventanas hermanas. Creo que la solución es hacer que el área cliente de la ventana MDI no ocupe el sector que corresponde a la barra de herramientas. Es decir configurar el área cliente de la ventana de MDI para que su alto sea igual al alto de la ventana de marco menos el alto de la barra de herramientas y además gestionar los mensajes WM_SIZE para que esta relación se mantenga.
Mi pregunta es: ¿Conoces alguna función de la API con la que se pueda configurar el área cliente de una ventana?
Desde ya muy agradecido;
Rodrigo.

3 respuestas

Respuesta
1
Yo lo suelo controlar en mi WM_SIZE, de todas maneras las clases CFrameWnd y demás de las MFC tienen ejemplos para controlar este tipo de cosas, si puedes miralo en el código fuente de las mfc (lo instala el vc++), si se puede excluir áreas de una ventana, creo que es algo así como setcliprect(), excluderegion() etc,
Respuesta
1
Lo siento pero no he trabajado nunca en CWin. Mira de pasar la pregunta a otro experto que te pueda ayudar mejor que yo.
Respuesta
Lo siento pero no estoy muy al día en programar MDI en C Win32, principalmente me dedico al Hard. Me suena que existe una función de la API Win32 llamada SetWindowLong que permite cambiar muchas propiedades, pero siento no poderte ayudar más en este tema.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas