Como é o menu do Windows em um MFC C ++ aplicativo povoada
Pergunta
Um dos menus padrão fornecidos a um aplicativo Document / View sob MFC é o menu do Windows. Ele oferece coisas como azulejos e janelas em cascata, e acrescenta uma lista enumerada de pontos de vista atualmente disponíveis no final do menu. O problema é que às vezes não e eu gostaria de saber por quê. Mais especificamente, eu gostaria de saber como atualizar esta lista como eu gostaria de usá-lo sob uma ferramenta de automação de GUI. Normalmente a lista é lá, às vezes não é, alguém sabe por quê? Meu palpite é que existe uma função de profundidade dentro da classe CFrameWnd para cuidar disso, mas eu não consigo encontrá-lo.
Editar:. Eu também estou usando a biblioteca Stingray por GUI que poderia muito bem ter uma influência sobre o problema
Solução
Atualização do menu e o título da janela são tratadas, separadamente, em dois métodos.
-
CFrameWnd::OnUpdateFrameMenu(..)
concretiza apenas o menu quadro, - refresca
CFrameWnd::OnUpdateFrameTitle(..)
apenas o nome do quadro.
Eu acho que existe algum lugar uma ordem de chamada errada e atualizar o título será mais tarde do que atualizar o menu. Afinal esse título no menu Janela permanece uma cadeia vazia, às vezes.
A maneira mais simples de reparação é usando a chamada de método GetActiveFrame()->ActivateFrame()
. Ele irá atualizar immediatelly a janela do quadro atual e do menu Janela de propriedade também.
Ele pode ser usado após a criação do CDocument e CView. O melhor lugar para chamá-lo é no final de OnFileNew
, OnFileOpen
métodos substituídos de (CWIN) App classe de aplicação.