Pregunta

Uno de los menús estándar proporcionados a un documento / vista de MFC aplicación bajo es el menú de Windows. Proporciona cosas como suelo de baldosas y ventanas en cascada, y anexa una lista enumerada de vistas disponibles actualmente en el final del menú. El problema es que a veces no y me gustaría saber por qué. Más específicamente, me gustaría saber cómo actualizar esta lista como me gustaría usarlo bajo una herramienta de automatización de interfaz gráfica de usuario. Por lo general, la lista está ahí, a veces no es así, alguien sabe por qué? Mi conjetura es que hay una función en lo profundo de la clase CFrameWnd para cuidar de esto, pero me parece que no puede encontrarlo.

Editar:. También estoy usando la biblioteca de la pastinaca de interfaz gráfica de usuario que bien podría tener una relación con el problema

¿Fue útil?

Solución

La actualización del menú y el título de la ventana se manejan separatelly en dos métodos.

  • CFrameWnd::OnUpdateFrameMenu(..) actualises sólo el menú del marco,
  • CFrameWnd::OnUpdateFrameTitle(..) actualiza sólo el nombre del marco.

Creo que hay alguna parte una orden de llamada equivocada y actualizar el título será más tarde de la actualización del menú. Después de todo ese título en el menú Ventana sigue siendo una cadena vacía veces.

La forma más sencilla de reparación es mediante el uso de la llamada al método GetActiveFrame()->ActivateFrame(). Se actualizará immediatelly la ventana de marco real y el menú Ventana propiedad también. Se puede utilizar después de crear el CDocument y el CView. El mejor lugar para hospedarse es en final de OnFileNew, OnFileOpen métodos sustituidos de (CWIN) Aplicación tipo de aplicación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top