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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top