Domanda

Uno dei menu standard forniti a un documento / vista app sotto MFC è il menu di Windows. Fornisce le cose come finestre piastrelle e cascata, e aggiunge un elenco numerato di opinioni attualmente disponibili alla fine del menu. Il problema è che, a volte non e vorrei sapere perché. Più in particolare, mi piacerebbe sapere come aggiornare questa lista come vorrei usarlo sotto uno strumento di automazione GUI. Di solito la lista è lì, a volte non è, qualcuno sa perché? La mia ipotesi è che ci sia una funzione profonda all'interno della classe CFrameWnd per prendersi cura di questo, ma io non riesco a trovarlo.

Modifica:. Sto anche utilizzando la libreria Stingray per la GUI che potrebbe anche avere un impatto sul problema

È stato utile?

Soluzione

Aggiornamento del menu e nel titolo della finestra vengono gestiti separatelly in due metodi.

  • CFrameWnd::OnUpdateFrameMenu(..) attualizza solo il menu telaio,
  • CFrameWnd::OnUpdateFrameTitle(..) aggiorna solo il nome della struttura.

Credo che ci sia da qualche parte un ordine di chiamata sbagliata e l'aggiornamento del titolo sarà più tardi l'aggiornamento del menu. Dopo tutto quel titolo nel menu Finestra rimane una stringa vuota a volte.

Il modo più semplice per la riparazione è quello di utilizzare la chiamata al metodo GetActiveFrame()->ActivateFrame(). Si aggiorna immediatelly la finestra cornice reale e il menu Finestra di proprietà troppo. Può essere utilizzato dopo la creazione del CDocument e il CView. Il posto migliore per chiamare è nella fine del OnFileNew, OnFileOpen Metodi sostituiti di (CWin) App classe di applicazioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top