Classe CFrameWnd
Fornece a funcionalidade de uma SDI (interface de documento único) do Windows sobreposta ou janela de quadro pop-up, além de membros para gerenciar a janela.
Sintaxe
class CFrameWnd : public CWnd
Membros
Construtores públicos
Nome | Descrição |
---|---|
CFrameWnd::CFrameWnd |
Constrói um objeto CFrameWnd . |
Métodos públicos
Nome | Descrição |
---|---|
CFrameWnd::ActivateFrame |
Torna o quadro visível e disponível para o usuário. |
CFrameWnd::BeginModalState |
Define a janela de quadro como modal. |
CFrameWnd::Create |
Chame para criar e inicializar a janela de quadro do Windows associada ao objeto CFrameWnd . |
CFrameWnd::CreateView |
Cria uma exibição dentro de um quadro que não é derivado de CView . |
CFrameWnd::DockControlBar |
Encaixa uma barra de controle. |
CFrameWnd::EnableDocking |
Permite que uma barra de controle seja encaixada. |
CFrameWnd::EndModalState |
Encerra o estado modal da janela de quadro. Habilita todas as janelas desabilitadas por BeginModalState . |
CFrameWnd::FloatControlBar |
Flutua uma barra de controle. |
CFrameWnd::GetActiveDocument |
Retorna o objeto CDocument ativo. |
CFrameWnd::GetActiveFrame |
Retorna o objeto CFrameWnd ativo. |
CFrameWnd::GetActiveView |
Retorna o objeto CView ativo. |
CFrameWnd::GetControlBar |
Recupera a barra de controle. |
CFrameWnd::GetDockState |
Recupera o estado do encaixe de uma janela de quadro. |
CFrameWnd::GetMenuBarState |
Recupera o estado de exibição do menu no aplicativo MFC atual. |
CFrameWnd::GetMenuBarVisibility |
Indica se o comportamento padrão do menu no aplicativo MFC atual está oculto ou visível. |
CFrameWnd::GetMessageBar |
Retorna um ponteiro para a barra de status que pertence à janela de quadro. |
CFrameWnd::GetMessageString |
Recupera a mensagem correspondente a uma ID de comando. |
CFrameWnd::GetTitle |
Recupera o título da barra de controle relacionada. |
CFrameWnd::InitialUpdateFrame |
Faz com que a função membro OnInitialUpdate pertencente a todas as exibições na janela de quadro seja chamada. |
CFrameWnd::InModalState |
Retorna um valor que indica se uma janela de quadro está ou não em um estado modal. |
CFrameWnd::IsTracking |
Determina se a barra de divisor está sendo movida no momento. |
CFrameWnd::LoadAccelTable |
Chame para carregar uma tabela de aceleradores. |
CFrameWnd::LoadBarState |
Chame para restaurar as configurações da barra de controle. |
CFrameWnd::LoadFrame |
Chame para criar dinamicamente uma janela de quadro com base nas informações do recurso. |
CFrameWnd::NegotiateBorderSpace |
Negocia o espaço de borda na janela de quadro. |
CFrameWnd::OnBarCheck |
Chamado sempre que uma ação é executada na barra de controle especificada. |
CFrameWnd::OnContextHelp |
Manipula a Ajuda SHIFT+F1 para itens in-loco. |
CFrameWnd::OnSetPreviewMode |
Define a janela de quadro principal do aplicativo dentro e fora do modo de visualização de impressão. |
CFrameWnd::OnUpdateControlBarMenu |
Chamado pela estrutura quando o menu associado é atualizado. |
CFrameWnd::RecalcLayout |
Reposiciona as barras de controle do objeto CFrameWnd . |
CFrameWnd::SaveBarState |
Chame para salvar as configurações da barra de controle. |
CFrameWnd::SetActivePreviewView |
Designa a exibição especificada como a exibição ativa para Visualização Avançada. |
CFrameWnd::SetActiveView |
Define o objeto CView ativo. |
CFrameWnd::SetDockState |
Chame para encaixar a janela de quadro na janela principal. |
CFrameWnd::SetMenuBarState |
Define o estado de exibição do menu no aplicativo MFC atual como oculto ou exibido. |
CFrameWnd::SetMenuBarVisibility |
Define o comportamento padrão do menu no aplicativo MFC atual como oculto ou visível. |
CFrameWnd::SetMessageText |
Define o texto de uma barra de status padrão. |
CFrameWnd::SetProgressBarPosition |
Define a posição atual da barra de progresso do Windows 7 exibida na barra de tarefas. |
CFrameWnd::SetProgressBarRange |
Define o intervalo para a barra de progresso do Windows 7 exibida na barra de tarefas. |
CFrameWnd::SetProgressBarState |
Define o tipo e o estado do indicador de progresso exibido em um botão da barra de tarefas. |
CFrameWnd::SetTaskbarOverlayIcon |
Sobrecarregado. Aplica uma sobreposição a um botão da barra de tarefas para indicar o status do aplicativo ou uma notificação ao usuário. |
CFrameWnd::SetTitle |
Define o título da barra de controle relacionada. |
CFrameWnd::ShowControlBar |
Chame para mostrar a barra de controle. |
CFrameWnd::ShowOwnedWindows |
Mostra todas as janelas descendentes do objeto CFrameWnd . |
Métodos protegidos
Nome | Descrição |
---|---|
CFrameWnd::OnCreateClient |
Cria uma janela do cliente para o quadro. |
CFrameWnd::OnHideMenuBar |
Chamado antes que o menu no aplicativo MFC atual esteja oculto. |
CFrameWnd::OnShowMenuBar |
Chamado antes que o menu no aplicativo MFC atual seja exibido. |
Membros de Dados Públicos
Nome | Descrição |
---|---|
CFrameWnd::m_bAutoMenuEnable |
Controla a funcionalidade de habilitação e desabilitação automáticas para itens de menu. |
CFrameWnd::rectDefault |
Passe essa CRect estática como um parâmetro ao criar um objeto CFrameWnd para permitir que o Windows escolha o tamanho e a posição iniciais da janela. |
Comentários
Para criar uma janela de quadro útil para o aplicativo, derive uma classe de CFrameWnd
. Adicione variáveis de membro à classe derivada para armazenar os dados específicos do aplicativo. Implemente funções membro do manipulador de mensagens e um mapa de mensagens na classe derivada para especificar o que acontecerá quando as mensagens forem direcionadas para a janela.
Há três maneiras de construir uma janela de quadro:
Construí-la diretamente usando
Create
.Construí-la diretamente usando
LoadFrame
.Construí-la indiretamente usando um modelo de documento.
Antes de chamar Create
ou LoadFrame
, será necessário construir o objeto de janela de quadro no heap usando o novo operador C++ new
. Antes de chamar Create
, você também poderá registrar uma classe de janela com a função global AfxRegisterWndClass
para definir os estilos de ícone e classe para o quadro.
Use a função membro Create
para passar os parâmetros de criação do quadro como argumentos imediatos.
LoadFrame
exige menos argumentos do que Create
e, em vez disso, recupera a maioria dos valores padrão dos recursos incluindo a legenda, o ícone, a tabela de aceleradores e o menu do quadro. Para serem acessíveis pelo LoadFrame
, todos esses recursos deverão ter a mesma ID do recurso (por exemplo, IDR_MAINFRAME
).
Quando um objeto CFrameWnd
contém exibições e documentos, eles são criados indiretamente pela estrutura em vez de diretamente pelo programador. O objeto CDocTemplate
orquestra a criação do quadro, a criação dos modos de exibição que contêm e a conexão dos modos de exibição com o documento apropriado. Os parâmetros do construtor CDocTemplate
especificam o CRuntimeClass
das três classes envolvidas (documento, quadro e exibição). Um objeto CRuntimeClass
é usado pela estrutura para criar dinamicamente novos quadros quando especificado pelo usuário (por exemplo, usando o comando Arquivo Novo ou o comando Nova Janela MDI (interface de documento múltiplo)).
Uma classe de janela de quadro derivada CFrameWnd
precisa ser declarada com DECLARE_DYNCREATE
para que o mecanismo RUNTIME_CLASS
acima funcione corretamente.
Um CFrameWnd
contém implementações padrão para executar as seguintes funções de uma janela principal em um aplicativo típico para Windows:
Uma janela de quadro
CFrameWnd
mantém o controle de uma exibição ativa atualmente independente da janela ativa do Windows ou do foco de entrada atual. Quando o quadro é reativado, a exibição ativa é notificada chamandoCView::OnActivateView
.As mensagens de comando e muitas mensagens comuns de notificação de quadro, incluindo aquelas manipuladas pelas funções
OnSetFocus
,OnHScroll
eOnVScroll
deCWnd
, são delegadas por uma janela de quadroCFrameWnd
para a exibição ativa no momento.A exibição ativa atualmente (ou a janela de quadro filho MDI atualmente ativa no caso de um quadro MDI) pode determinar a legenda da janela de quadro. Esse recurso pode ser desabilitado desativando o bit de estilo
FWS_ADDTOTITLE
da janela de quadro.Uma janela de quadro
CFrameWnd
gerencia o posicionamento das barras de controle, exibições e outras janelas filho dentro da área do cliente da janela de quadro. Uma janela de quadro também faz a atualização em tempo ocioso da barra de ferramentas e de outros botões da barra de controle. Uma janela de quadroCFrameWnd
também tem implementações padrão de comandos para ativar e desativar a barra de ferramentas e a barra de status.Uma janela de quadro
CFrameWnd
gerencia a barra de menus principal. Quando um menu pop-up é exibido, a janela de quadro usa o mecanismoUPDATE_COMMAND_UI
para determinar quais itens de menu devem ser habilitados, desabilitados ou verificados. Quando o usuário seleciona um item de menu, a janela de quadro atualiza a barra de status com a cadeia de caracteres de mensagem para esse comando.Uma janela de quadro
CFrameWnd
tem uma tabela de aceleradores opcional que converte automaticamente aceleradores de teclado.Uma janela de quadro
CFrameWnd
tem uma ID de ajuda opcional definida comLoadFrame
a qual é usada para ajuda contextual. Uma janela de quadro é o principal orquestrador de estados semimodais, como a ajuda contextual (SHIFT+F1) e os modos de visualização de impressão.Uma janela de quadro
CFrameWnd
abrirá um arquivo arrastado do Gerenciador de Arquivos e solto na janela de quadro. Se uma extensão de arquivo for registrada e associada ao aplicativo, a janela de quadro responderá à solicitação aberta de DDE (troca dinâmica de dados) que ocorre quando o usuário abre um arquivo de dados no Gerenciador de Arquivos ou quando a funçãoShellExecute
do Windows é chamada.Se a janela de quadro for a janela principal do aplicativo (ou seja,
CWinThread::m_pMainWnd
), quando o usuário fechar o aplicativo, a janela de quadro solicitará que o usuário salve todos os documentos modificados (paraOnClose
eOnQueryEndSession
).Se a janela de quadro for a janela principal do aplicativo, a janela de quadro será o contexto para executar o WinHelp. O fechamento da janela de quadro desligará
WINHELP.EXE
se ele tiver sido iniciado para obter ajuda para esse aplicativo.
Não use o operador delete
do C++ para destruir uma janela com moldura. Use o CWnd::DestroyWindow
em vez disso. A implementação CFrameWnd
de PostNcDestroy
excluirá o objeto C++ quando a janela for destruída. Quando o usuário fechar a janela com moldura, o manipulador OnClose
padrão chamará DestroyWindow
.
Para obter mais informações sobre CFrameWnd
, confira Janelas com Moldura.
Hierarquia de herança
CFrameWnd
Requisitos
Cabeçalho: afxwin.h
CFrameWnd::ActivateFrame
Chame essa função membro para ativar e restaurar a janela de quadro para que ela fique visível e disponível para o usuário.
virtual void ActivateFrame(int nCmdShow = -1);
Parâmetros
nCmdShow
Especifica o parâmetro a ser passado para CWnd::ShowWindow
. Por padrão, o quadro é mostrado e restaurado corretamente.
Comentários
Essa função membro geralmente é chamada após um evento de interface não usuário, como um DDE, OLE ou outro evento que pode mostrar a janela de quadro ou o conteúdo dela para o usuário.
A implementação padrão ativa o quadro e o leva à parte superior da ordem Z e, se necessário, executa as mesmas etapas para a janela de quadro principal do aplicativo.
Substitua essa função membro para alterar a forma como um quadro é ativado. Por exemplo, você pode forçar as janelas filho do MDI a serem maximizadas. Adicione a funcionalidade apropriada e, em seguida, chame a versão da classe base com um nCmdShow
explícito.
Exemplo
void CChildFrame::ActivateFrame(int nCmdShow)
{
// Create the child frame window maximized
nCmdShow = SW_MAXIMIZE;
CMDIChildWnd::ActivateFrame(nCmdShow);
}
CFrameWnd::BeginModalState
Chame essa função membro para tornar uma janela de quadro restrita.
virtual void BeginModalState();
CFrameWnd::CFrameWnd
Constrói um objeto CFrameWnd
, mas não cria a janela de quadro visível.
CFrameWnd();
Comentários
Chame Create
para criar a janela visível.
CFrameWnd::Create
Chame para criar e inicializar a janela de quadro do Windows associada ao objeto CFrameWnd
.
virtual BOOL Create(
LPCTSTR lpszClassName,
LPCTSTR lpszWindowName,
DWORD dwStyle = WS_OVERLAPPEDWINDOW,
const RECT& rect = rectDefault,
CWnd* pParentWnd = NULL,
LPCTSTR lpszMenuName = NULL,
DWORD dwExStyle = 0,
CCreateContext* pContext = NULL);
Parâmetros
lpszClassName
Aponta para uma cadeia de caracteres terminada em nulo que nomeia a classe do Windows. O nome de classe pode ser qualquer nome registrado com a função global AfxRegisterWndClass
ou a função do Windows RegisterClass
. Se NULL
, usa os atributos CFrameWnd
padrão predefinidos.
lpszWindowName
Aponta para uma cadeia de caracteres terminada em nulo que representa o nome da janela. Usado como texto para a barra de título.
dwStyle
Especifica os atributos de estilo de janela. Inclua o estilo FWS_ADDTOTITLE
se você quiser que a barra de título exiba automaticamente o nome do documento representado na janela.
rect
Especifica o tamanho e a posição da janela. O valor rectDefault
permite que o Windows especifique o tamanho e a posição da nova janela.
pParentWnd
Especifica a janela pai dessa janela de quadro. Esse parâmetro deve ser NULL
para janelas de quadro de nível superior.
lpszMenuName
Identifica o nome do recurso de menu a ser usado com a janela. Use MAKEINTRESOURCE
se o menu tiver uma ID de inteiro em vez de uma cadeia de caracteres. Esse parâmetro pode ser NULL
.
dwExStyle
Especifica os atributos de estilo estendido da janela.
pContext
Retorna um ponteiro para uma estrutura CCreateContext
. Esse parâmetro pode ser NULL
.
Valor de retorno
Não zero se a inicialização for bem-sucedida; caso contrário, 0.
Comentários
Construa um objeto CFrameWnd
em duas etapas. Primeiro, invoque o construtor, que constrói o objeto CFrameWnd
e, em seguida, chame Create
, o que cria a janela de quadro do Windows e o anexa ao objeto CFrameWnd
. Create
inicializa o nome da classe e o nome da janela e registra valores padrão para o estilo, o pai e o menu associado dela.
Use LoadFrame
em vez de Create
para carregar a janela de quadro de um recurso em vez de especificar os argumentos dela.
CFrameWnd::CreateView
Chame CreateView
para criar uma exibição dentro de um quadro.
CWnd* CreateView(
CCreateContext* pContext,
UINT nID = AFX_IDW_PANE_FIRST);
Parâmetros
pContext
Especifica o tipo de exibição e de documento.
nID
O número de ID de uma exibição.
Valor de retorno
Um ponteiro para um objeto CWnd
, se tiver êxito; caso contrário, NULL
.
Comentários
Use essa função membro para criar "exibições" que não são derivadas de CView
dentro de um quadro. Depois de chamar CreateView
, você precisa definir manualmente a exibição como ativa e defini-la como visível; essas tarefas não são executadas automaticamente por CreateView
.
CFrameWnd::DockControlBar
Faz com que uma barra de controle seja encaixada na janela de quadro.
void DockControlBar(
CControlBar* pBar,
UINT nDockBarID = 0,
LPCRECT lpRect = NULL);
Parâmetros
pBar
Aponta para a barra de controle a ser encaixada.
nDockBarID
Determina quais lados da janela de quadro considerar para encaixe. Pode ser 0 ou um ou mais dos seguintes:
AFX_IDW_DOCKBAR_TOP
Encaixe na parte superior da janela de quadro.AFX_IDW_DOCKBAR_BOTTOM
Encaixe na parte inferior da janela de quadro.AFX_IDW_DOCKBAR_LEFT
Encaixe no lado esquerdo da janela de quadro.AFX_IDW_DOCKBAR_RIGHT
Encaixe no lado direito da janela de quadro.
Se for 0, a barra de controle poderá ser encaixada em qualquer lado habilitado para encaixe na janela de quadro de destino.
lpRect
Determina, em coordenadas de tela, onde a barra de controle será encaixada na área não cliente da janela de quadro de destino.
Comentários
A barra de controle será encaixada em um dos lados da janela de quadro especificada nas chamadas para ambos CControlBar::EnableDocking
e CFrameWnd::EnableDocking
. O lado escolhido é determinado por nDockBarID
.
CFrameWnd::EnableDocking
Chame essa função para habilitar barras de controle encaixadas em uma janela de quadro.
void EnableDocking(DWORD dwDockStyle);
Parâmetros
dwDockStyle
Especifica quais lados da janela de quadro podem servir como locais de encaixe para barras de controle. Poderá ser um ou mais dos seguintes:
CBRS_ALIGN_TOP
Permite o encaixe na parte superior da área do cliente.CBRS_ALIGN_BOTTOM
Permite o encaixe na parte inferior da área do cliente.CBRS_ALIGN_LEFT
Permite o encaixe no lado esquerdo da área do cliente.CBRS_ALIGN_RIGHT
Permite o encaixe no lado direito da área do cliente.CBRS_ALIGN_ANY
Permite o encaixe em qualquer lado da área do cliente.
Comentários
Por padrão, as barras de controle serão encaixadas em um lado da janela de quadro na seguinte ordem: superior, inferior, esquerda, direita.
Exemplo
Confira o exemplo de CToolBar::Create
.
CFrameWnd::EndModalState
Chame essa função membro para alterar uma janela de quadro de modal para não restrita.
virtual void EndModalState();
Comentários
EndModalState
habilita todas as janelas desabilitadas por BeginModalState
.
CFrameWnd::FloatControlBar
Chame essa função para fazer com que uma barra de controle não seja encaixada na janela de quadro.
void FloatControlBar(
CControlBar* pBar,
CPoint point,
DWORD dwStyle = CBRS_ALIGN_TOP);
Parâmetros
pBar
Aponta para a barra de controle a ser flutuada.
point
O local, em coordenadas de tela, em que o canto superior esquerdo da barra de controle será colocado.
dwStyle
Especifica se a barra de controle deve ser alinhada horizontal ou verticalmente dentro da nova janela de quadro dela. Pode ser qualquer um dos seguintes:
CBRS_ALIGN_TOP
Orienta a barra de controle verticalmente.CBRS_ALIGN_BOTTOM
Orienta a barra de controle verticalmente.CBRS_ALIGN_LEFT
Orienta a barra de controle horizontalmente.CBRS_ALIGN_RIGHT
Orienta a barra de controle horizontalmente.
Se os estilos forem passados especificando orientação horizontal e vertical, a barra de ferramentas será orientada horizontalmente.
Comentários
Normalmente, isso é feito na inicialização do aplicativo quando o programa está restaurando as configurações da execução anterior.
Essa função é chamada pela estrutura quando o usuário causa uma operação de soltar liberando o botão esquerdo do mouse enquanto arrasta a barra de controle sobre um local que não está disponível para encaixe.
CFrameWnd::GetActiveDocument
Chame essa função de membro para obter um ponteiro para o CDocument
atual anexado à exibição ativa atual.
virtual CDocument* GetActiveDocument();
Valor de retorno
Um ponteiro para o CDocument
atual. Se não houver nenhum documento atual, retornará NULL
.
CFrameWnd::GetActiveFrame
Chame essa função membro para obter um ponteiro para a janela filho MDI (interface de documento múltiplo) ativa de uma janela de quadro MDI.
virtual CFrameWnd* GetActiveFrame();
Valor de retorno
Um ponteiro para a janela filho MDI ativa. Se o aplicativo for um aplicativo SDI ou a janela do quadro MDI não tiver nenhum documento ativo, o ponteiro implícito this
será retornado.
Comentários
Se não houver nenhum filho MDI ativo ou se o aplicativo for uma SDI (interface de documento único), o ponteiro implícito this
será retornado.
CFrameWnd::GetActiveView
Chame essa função membro para obter um ponteiro para a exibição ativa (se houver) anexada a uma janela de quadro (CFrameWnd
).
CView* GetActiveView() const;
Valor de retorno
Um ponteiro para o CView
atual. Se não houver nenhuma exibição atual, retornará NULL
.
Comentários
Essa função retorna NULL
quando chamada para uma janela de quadro principal MDI (CMDIFrameWnd
). Em um aplicativo MDI, a janela de quadro principal MDI não tem uma exibição associada a ela. Em vez disso, cada janela filho individual (CMDIChildWnd
) tem uma ou mais exibições associadas. A exibição ativa em um aplicativo MDI pode ser obtida primeiro encontrando a janela filho MDI ativa e, em seguida, encontrando a exibição ativa para essa janela filho. A janela filho MDI ativa pode ser encontrada chamando a função MDIGetActive
ou GetActiveFrame
, conforme demonstrado abaixo:
CMDIFrameWnd *pFrame = (CMDIFrameWnd*)AfxGetApp()->GetMainWnd();
// Get the active MDI child window.
CMDIChildWnd *pChild = (CMDIChildWnd*)pFrame->GetActiveFrame();
// or CMDIChildWnd *pChild = pFrame->MDIGetActive();
// Get the active view attached to the active MDI child window.
CMyView *pView = (CMyView*)pChild->GetActiveView();
CFrameWnd::GetControlBar
Chame GetControlBar
para obter acesso à barra de controle associada à ID.
CControlBar* GetControlBar(UINT nID);
Parâmetros
nID
O número de ID de uma barra de controle.
Valor de retorno
Um ponteiro para a barra de controle associada à ID.
Comentários
O parâmetro nID
refere-se ao identificador exclusivo passado para o método Create
da barra de controle. Para obter mais informações sobre barras de controle, confira o tópico intitulado Barras de Controle.
GetControlBar
retornará a barra de controle mesmo se ela estiver flutuando e, portanto, não for atualmente uma janela filho do quadro.
CFrameWnd::GetDockState
Chame essa função membro para armazenar informações de estado sobre as barras de controle da janela de quadro em um objeto CDockState
.
void GetDockState(CDockState& state) const;
Parâmetros
state
Contém o estado atual das barras de controle da janela de quadro no retorno.
Comentários
Em seguida, você pode gravar o conteúdo de CDockState
no armazenamento usando CDockState::SaveState
ou Serialize
. Se posteriormente você quiser restaurar as barras de controle para um estado anterior, carregue o estado com CDockState::LoadState
ou Serialize
, depois chame SetDockState
para aplicar o estado anterior às barras de controle da janela de quadro.
CFrameWnd::GetMenuBarState
Recupera o estado de exibição do menu no aplicativo MFC atual.
virtual DWORD GetMenuBarState();
Valor de retorno
Ele pode ter os seguintes valores:
AFX_MBS_VISIBLE
(0x01) – o menu está visível.AFX_MBS_HIDDEN
(0x02) – o menu está oculto.
Comentários
Se ocorrer um erro de runtime, esse método declarará no modo de Depuração e gerará uma exceção derivada da classe CException
.
CFrameWnd::GetMenuBarVisibility
Indica se o estado padrão do menu no aplicativo MFC atual é oculto ou visível.
virtual DWORD CFrameWnd::GetMenuBarVisibility();
Valor de retorno
Esse método retorna um dos seguintes valores:
AFX_MBV_KEEPVISIBLE
(0x01) – o menu é exibido o tempo todo e, por padrão, não tem o foco.AFX_MBV_DISPLAYONFOCUS
(0x02) – o menu está oculto por padrão. Se o menu estiver oculto, pressione a tecla ALT para exibir o menu e dar o foco a ele. Se o menu estiver sendo exibido, pressione a tecla ALT ou ESC para ocultá-lo.AFX_MBV_ DISPLAYONFOCUS | AFX_MBV_DISPLAYONF10
(0x06) – o menu está oculto por padrão. Se o menu estiver oculto, pressione a tecla F10 para exibir o menu e dar o foco a ele. Se o menu estiver sendo exibido, pressione a tecla F10 para ativar ou desativar o foco do menu. O menu é exibido até que você pressione a tecla ALT ou ESC para ocultá-lo.
Comentários
Se ocorrer um erro de runtime, esse método declarará no modo de Depuração e gerará uma exceção derivada da classe CException
.
CFrameWnd::GetMessageBar
Chame esta função membro para obter um ponteiro para a barra de status.
virtual CWnd* GetMessageBar();
Valor de retorno
Ponteiro para a janela da barra de status.
CFrameWnd::GetMessageString
Substitua essa função para fornecer cadeias de caracteres personalizadas para IDs de comando.
virtual void GetMessageString(
UINT nID,
CString& rMessage) const;
Parâmetros
nID
ID do recurso da mensagem desejada.
rMessage
Objeto CString
no qual colocar a mensagem.
Comentários
A implementação padrão simplesmente carrega a cadeia de caracteres especificada pelo nID
do arquivo de recurso. Essa função é chamada pela estrutura quando a cadeia de caracteres de mensagem na barra de status precisa ser atualizada.
CFrameWnd::GetTitle
Recupera o título do objeto de janela.
CString GetTitle() const;
Valor de retorno
Um objeto CString
que contém o título atual do objeto de janela.
CFrameWnd::InitialUpdateFrame
Chame IntitialUpdateFrame
depois de criar um quadro com Create
.
void InitialUpdateFrame(
CDocument* pDoc,
BOOL bMakeVisible);
Parâmetros
pDoc
Aponta para o documento ao qual a janela de quadro está associada. Pode ser NULL
.
bMakeVisible
Se for TRUE
, indicará se o quadro deve ficar visível e ativo. Se for FALSE
, nenhum descendente será tornado visível.
Comentários
Isso faz com que todas as exibições nessa janela de quadro recebam as respectivas chamadas OnInitialUpdate
.
Além disso, se não houver uma exibição ativa anteriormente, a exibição primária da janela de quadro será tornada ativa. A exibição principal é uma exibição com uma ID filho de AFX_IDW_PANE_FIRST
. Por fim, a janela de quadro fica visível quando bMakeVisible
é diferente de zero. Se bMakeVisible
for zero, o foco atual e o estado visível da janela de quadro permanecerão inalterados. Não é necessário chamar essa função ao usar a implementação da estrutura de Arquivo Novo e Arquivo Abrir.
CFrameWnd::InModalState
Chame essa função membro para verificar se uma janela de quadro é modal ou sem modo.
BOOL InModalState() const;
Valor de retorno
Diferente de zero se sim; caso contrário, 0.
CFrameWnd::IsTracking
Chame essa função de membro para determinar se a barra de divisor na janela está sendo movida no momento.
BOOL IsTracking() const;
Valor de retorno
Não zero se uma operação de divisor estiver em andamento; caso contrário, 0.
CFrameWnd::LoadAccelTable
Chame para carregar a tabela de aceleradores especificada.
BOOL LoadAccelTable(LPCTSTR lpszResourceName);
Parâmetros
lpszResourceName
Identifica o nome do recurso de acelerador. Use MAKEINTRESOURCE
se o recurso for identificado com uma ID de inteiro.
Valor de retorno
Diferente de zero se a tabela de aceleradores foi carregada com êxito; caso contrário, 0.
Comentários
Apenas uma tabela pode ser carregada por vez.
Tabelas de aceleradores carregadas por meio de recursos são liberadas automaticamente quando o aplicativo é encerrado.
Se você chamar LoadFrame
para criar a janela de quadro, a estrutura carregará uma tabela de aceleradores junto com os recursos de menu e ícone, e uma chamada subsequente para essa função membro será desnecessária.
CFrameWnd::LoadBarState
Chame essa função para restaurar as configurações de cada barra de controle que é propriedade da janela de quadro.
void LoadBarState(LPCTSTR lpszProfileName);
Parâmetros
lpszProfileName
Nome de uma seção no arquivo de inicialização (INI) ou uma chave no Registro do Windows em que as informações de estado são armazenadas.
Comentários
As informações restauradas incluem visibilidade, orientação horizontal/vertical, estado de encaixe e posição da barra de controle.
As configurações que você deseja restaurar precisam ser gravadas no Registro antes de você chamar LoadBarState
. Escreva as informações no registro chamando CWinApp::SetRegistryKey
. Escreva as informações no arquivo INI chamando SaveBarState
.
CFrameWnd::LoadFrame
Chame para criar dinamicamente uma janela de quadro com base nas informações do recurso.
virtual BOOL LoadFrame(
UINT nIDResource,
DWORD dwDefaultStyle = WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE,
CWnd* pParentWnd = NULL,
CCreateContext* pContext = NULL);
Parâmetros
nIDResource
A ID dos recursos compartilhados associados à janela de quadro.
dwDefaultStyle
O estilo do quadro. Inclua o estilo FWS_ADDTOTITLE
se você quiser que a barra de título exiba automaticamente o nome do documento representado na janela.
pParentWnd
Um ponteiro para o pai do quadro.
pContext
Um ponteiro para uma estrutura CCreateContext
. Esse parâmetro pode ser NULL
.
Comentários
Construa um objeto CFrameWnd
em duas etapas. Primeiro, invoque o construtor que constrói o objeto CFrameWnd
e, em seguida, chame LoadFrame
, que carrega a janela de quadro do Windows e os recursos associados e anexa a janela de quadro ao objeto CFrameWnd
. O parâmetro nIDResource
especifica o menu, a tabela de aceleradores, o ícone e o recurso de cadeia de caracteres do título para a janela do quadro.
Use a função membro Create
em vez de LoadFrame
quando você desejar especificar todos os parâmetros de criação da janela de quadro.
A estrutura chama LoadFrame
quando cria uma janela de quadro usando um objeto de modelo de documento.
A estrutura usa o argumento pContext
para especificar os objetos a serem conectados à janela de quadro, incluindo os objetos de exibição contidos, se houver. Você poderá definir o argumento pContext
para NULL
quando chamar LoadFrame
.
CFrameWnd::m_bAutoMenuEnable
Quando esse membro de dados estiver habilitado (que é o padrão), os itens de menu que não têm manipuladores ON_UPDATE_COMMAND_UI
ou ON_COMMAND
serão desabilitados automaticamente quando o usuário efetuar pull de um menu.
BOOL m_bAutoMenuEnable;
Comentários
Os itens de menu que têm um manipulador ON_COMMAND
, mas nenhum manipulador ON_UPDATE_COMMAND_UI
, serão habilitados automaticamente.
Quando esse membro de dados é definido, os itens de menu são habilitados automaticamente, da mesma forma que ocorre com os botões da barra de ferramentas.
Observação
m_bAutoMenuEnable
não tem efeito em itens de menu de nível superior.
Esse membro de dados simplifica a implementação de comandos opcionais com base na seleção atual e reduz a necessidade de escrever manipuladores ON_UPDATE_COMMAND_UI
para habilitar e desabilitar itens de menu.
Exemplo
// CMainFrame is application-defined object of type CFrameWnd
CMainFrame::CMainFrame()
: m_hDrawMenu(NULL), m_hDrawAccel(NULL), m_bCheck(false), m_nWindowTimer(0), m_nCallbackTimer(0)
{
// Set to FALSE so no ON_UPDATE_COMMAND_UI
// or ON_COMMAND handlers are needed, and
// CMenu::EnableMenuItem() will work as expected.
m_bAutoMenuEnable = FALSE;
}
CFrameWnd::NegotiateBorderSpace
Chame essa função membro para negociar o espaço de borda em uma janela de quadro durante a ativação local da OLE.
virtual BOOL NegotiateBorderSpace(
UINT nBorderCmd,
LPRECT lpRectBorder);
Parâmetros
nBorderCmd
Contém um dos seguintes valores do enum BorderCmd
:
borderGet
= 1borderRequest
= 2borderSet
= 3
lpRectBorder
Ponteiro para uma estrutura RECT
ou um objeto CRect
que especifica as coordenadas da borda.
Valor de retorno
Diferente de zero se tiver êxito; caso contrário, 0.
Comentários
Esta função membro é a implementação CFrameWnd
da negociação de espaço de borda OLE.
CFrameWnd::OnBarCheck
Chamado sempre que uma ação é executada na barra de controle especificada.
afx_msg BOOL OnBarCheck(UINT nID);
Parâmetros
nID
A ID da barra de controle sendo mostrada.
Valor de retorno
Diferente de zero se a barra de controle existia; caso contrário, 0.
CFrameWnd::OnContextHelp
Manipula a Ajuda SHIFT+F1 para itens in-loco.
afx_msg void OnContextHelp();
Comentários
Para habilitar a ajuda contextual, você precisa adicionar uma
ON_COMMAND(ID_CONTEXT_HELP, &CMainFrame::OnContextHelp)
instrução ao mapa de mensagens de classe CFrameWnd
e também adicionar uma entrada de tabela de aceleradores, normalmente SHIFT+F1, para habilitar essa função membro.
Se o aplicativo for um contêiner OLE, OnContextHelp
colocará todos os itens in-loco contidos no objeto de janela de quadro no modo Ajuda. O cursor muda para uma seta e um ponto de interrogação, e o usuário pode mover o ponteiro do mouse e pressionar o botão esquerdo do mouse para selecionar uma caixa de diálogo, janela, menu ou botão de comando. Essa função membro chama a função WinHelp
do Windows com o contexto de Ajuda do objeto sob o cursor.
CFrameWnd::OnCreateClient
Chamado pela estrutura durante a execução de OnCreate
.
virtual BOOL OnCreateClient(
LPCREATESTRUCT lpcs,
CCreateContext* pContext);
Parâmetros
lpcs
Um ponteiro para uma estrutura CREATESTRUCT
do Windows.
pContext
Um ponteiro para uma estrutura CCreateContext
.
Valor de retorno
Diferente de zero se tiver êxito; caso contrário, 0.
Comentários
Nunca chame essa função.
A implementação padrão dessa função cria um objeto CView
com base nas informações fornecidas em pContext
, se possível.
Substitua essa função para substituir valores passados no objeto CCreateContext
ou para alterar a forma como os controles na área principal do cliente da janela de quadro são criados. Os membros CCreateContext
que você pode substituir são descritos na classe CCreateContext
.
Observação
Não substitua os valores passados na estrutura CREATESTRUCT
. Elas são somente para uso informativo. Se você quiser substituir o retângulo da janela inicial, por exemplo, substitua a função membro PreCreateWindow
de CWnd
.
CFrameWnd::OnHideMenuBar
Essa função é chamada quando o sistema está prestes a ocultar a barra de menus no aplicativo MFC atual.
virtual void OnHideMenuBar();
Comentários
Esse manipulador de eventos permite que seu aplicativo execute ações personalizadas quando o sistema está prestes a ocultar o menu. Não é possível impedir que o menu seja oculto, mas você pode, por exemplo, chamar outros métodos para recuperar o estilo ou o estado do menu.
CFrameWnd::OnSetPreviewMode
Chame essa função membro para definir a janela de quadro principal do aplicativo para dentro e fora do modo de visualização de impressão.
virtual void OnSetPreviewMode(
BOOL bPreview,
CPrintPreviewState* pState);
Parâmetros
bPreview
Especifica se o aplicativo deve ou não ser colocado no modo de visualização de impressão. Defina TRUE
para colocá-lo em visualização de impressão e FALSE
para cancelar o modo de visualização.
pState
Um ponteiro para uma estrutura CPrintPreviewState
.
Comentários
A implementação padrão desabilita todas as barras de ferramentas padrão e oculta o menu principal e a janela principal do cliente. Isso transforma janelas de quadro MDI em janelas de quadro SDI temporárias.
Substitua essa função membro para personalizar a ocultação e a exibição de barras de controle e outras partes de janela de quadro durante a visualização de impressão. Chame a implementação da classe base de dentro da versão substituída.
CFrameWnd::OnShowMenuBar
Essa função é chamada quando o sistema está prestes a exibir a barra de menus no aplicativo MFC atual.
virtual void OnShowMenuBar();
Comentários
Esse manipulador de eventos permite que seu aplicativo execute ações personalizadas quando o menu está prestes a ser exibido. Não é possível impedir que o menu seja exibido, mas você pode, por exemplo, chamar outros métodos para recuperar o estilo ou o estado do menu.
CFrameWnd::OnUpdateControlBarMenu
Chamado pela estrutura quando o menu associado é atualizado.
afx_msg void OnUpdateControlBarMenu(CCmdUI* pCmdUI);
Parâmetros
pCmdUI
Um ponteiro para um objeto CCmdUI
que representa o menu que gerou o comando de atualização. O manipulador de atualização chama a função membro Enable
do objeto CCmdUI
por pCmdUI
atualizar a interface do usuário.
CFrameWnd::RecalcLayout
Chamado pela estrutura quando as barras de controle padrão são ativadas ou desativadas ou quando a janela de quadro é redimensionada.
virtual void RecalcLayout(BOOL bNotify = TRUE);
Parâmetros
bNotify
Determina se o item in-loco ativo para a janela de quadro recebe a notificação da alteração de layout. Se for TRUE
, o item será notificado; caso contrário FALSE
.
Comentários
A implementação padrão dessa função membro chama a função membro RepositionBars
de CWnd
para reposicionar todas as barras de controle no quadro, bem como na janela principal do cliente (geralmente um CView
ou MDICLIENT
).
Substitua essa função membro para controlar a aparência e o comportamento das barras de controle após a alteração do layout da janela de quadro. Por exemplo, chame-a quando você ativar ou desativar as barras de controle ou adicionar outra barra de controle.
CFrameWnd::rectDefault
Passe esse CRect
estático como um parâmetro ao criar uma janela para permitir que o Windows escolha o tamanho e a posição iniciais da janela.
static AFX_DATA const CRect rectDefault;
CFrameWnd::SaveBarState
Chame essa função para armazenar informações sobre cada barra de controle pertencente à janela de quadro.
void SaveBarState(LPCTSTR lpszProfileName) const;
Parâmetros
lpszProfileName
Nome de uma seção no arquivo de inicialização ou uma chave no Registro do Windows em que as informações de estado são armazenadas.
Comentários
Essas informações podem ser lidas do arquivo de inicialização usando LoadBarState
. As informações armazenadas incluem visibilidade, orientação horizontal/vertical, estado de encaixe e posição da barra de controle.
CFrameWnd::SetActivePreviewView
Designa a exibição especificada como a exibição ativa para Visualização Avançada.
void SetActivePreviewView(CView* pViewNew);
Parâmetros
pViewNew
Um ponteiro para uma exibição a ser ativada.
Comentários
CFrameWnd::SetActiveView
Chame essa função de membro para definir a exibição ativa.
void SetActiveView(
CView* pViewNew,
BOOL bNotify = TRUE);
Parâmetros
pViewNew
Especifica um ponteiro para um objeto CView
ou NULL
para nenhuma exibição ativa.
bNotify
Especifica se a exibição deve ser notificada da ativação. Se for TRUE
, a função OnActivateView
será chamada para a nova exibição; se for FALSE
, ela não o será.
Comentários
A estrutura chamará essa função automaticamente à medida que o usuário alterar o foco para uma exibição dentro da janela de quadro. Você pode chamar SetActiveView
explicitamente para alterar o foco para a exibição especificada.
CFrameWnd::SetDockState
Chame essa função membro para aplicar informações de estado armazenadas em um objeto CDockState
às barras de controle da janela de quadro.
void SetDockState(const CDockState& state);
Parâmetros
state
Aplique o estado armazenado às barras de controle da janela de quadro.
Comentários
Para restaurar um estado anterior das barras de controle, você pode carregar o estado armazenado com CDockState::LoadState
ou Serialize
, em seguida, use SetDockState
para aplicá-lo às barras de controle da janela de quadro. O estado anterior é armazenado no objeto CDockState
com GetDockState
CFrameWnd::SetMenuBarState
Define o estado de exibição do menu no aplicativo MFC atual como oculto ou exibido.
virtual BOOL SetMenuBarState(DWORD nState);
Parâmetros
nState
[in] Especifica se o menu deve ser exibido ou oculto. O parâmetro nState
pode ter os seguintes valores:
AFX_MBS_VISIBLE
(0x01) – exibe o menu se ele estiver oculto, mas não terá efeito se o menu estiver visível.AFX_MBS_HIDDEN
(0x02) – oculta o menu se ele estiver visível, mas não terá efeito se estiver oculto.
Valor de retorno
TRUE
se esse método alterar com êxito o estado do menu; caso contrário, FALSE
.
Comentários
Se ocorrer um erro de runtime, esse método declarará no modo de Depuração e gerará uma exceção derivada da classe CException
.
CFrameWnd::SetMenuBarVisibility
Define o comportamento padrão do menu no aplicativo MFC atual como oculto ou visível.
virtual void SetMenuBarVisibility(DWORD nStyle);
Parâmetros
nStyle
[in] Especifica se o menu está oculto por padrão ou se está visível e tem o foco. O parâmetro nStyle
pode ter os seguintes valores:
AFX_MBV_KEEPVISIBLE
(0x01) – o menu é exibido o tempo todo e, por padrão, não tem o foco.AFX_MBV_DISPLAYONFOCUS
(0x02) – o menu está oculto por padrão. Se o menu estiver oculto, pressione a tecla ALT para exibir o menu e dar o foco a ele. Se o menu for exibido, pressione a tecla ALT ou ESC para ocultá-lo.AFX_MBV_DISPLAYONFOCUS | AFX_MBV_DISPLAYONF10
(0x06) – o menu está oculto por padrão. Se o menu estiver oculto, pressione a tecla F10 para exibir o menu e dar o foco a ele. Se o menu estiver sendo exibido, pressione a tecla F10 para ativar ou desativar o foco do menu. O menu é exibido até que você pressione a tecla ALT ou ESC para ocultá-lo.
Comentários
Se o valor do parâmetro nStyle
não for válido, esse método será declarado no modo de depuração e gerará CInvalidArgException
no modo de Lançamento. Se ocorrerem outros erros de runtime, esse método declarará no modo de Depuração e gerará uma exceção derivada da classe CException
.
Esse método afeta o estado dos menus em aplicativos gravados para o Windows Vista e posteriores.
CFrameWnd::SetMessageText
Chame essa função para colocar uma cadeia de caracteres no painel de barra de status que tenha uma ID igual a 0.
void SetMessageText(LPCTSTR lpszText);
void SetMessageText(UINT nID);
Parâmetros
lpszText
Aponta para a cadeia de caracteres a ser colocada na barra de status.
nID
ID de recurso de cadeia de caracteres da cadeia de caracteres a ser colocada na barra de status.
Comentários
Normalmente, esse é o painel mais à esquerda e mais longo da barra de status.
CFrameWnd::SetProgressBarPosition
Define a posição atual da barra de progresso do Windows 7 exibida na barra de tarefas.
void SetProgressBarPosition(int nProgressPos);
Parâmetros
nProgressPos
Especifica a posição a ser definida. Precisa estar no intervalo definido por SetProgressBarRange
.
Comentários
CFrameWnd::SetProgressBarRange
Define o intervalo para a barra de progresso do Windows 7 exibida na barra de tarefas.
void SetProgressBarRange(
int nRangeMin,
int nRangeMax);
Parâmetros
nRangeMin
Valor mínimo.
nRangeMax
Valor máximo.
Comentários
CFrameWnd::SetProgressBarState
Define o tipo e o estado do indicador de progresso exibido em um botão da barra de tarefas.
void SetProgressBarState(TBPFLAG tbpFlags);
Parâmetros
tbpFlags
Sinalizadores que controlam o estado atual do botão de progresso. Especifique apenas um dos seguintes sinalizadores, porque todos os estados são mutuamente exclusivos: TBPF_NOPROGRESS
, TBPF_INDETERMINATE
, TBPF_NORMAL
, TBPF_ERROR
, TBPF_PAUSED
.
Comentários
CFrameWnd::SetTaskbarOverlayIcon
Sobrecarregado. Aplica uma sobreposição a um botão da barra de tarefas para indicar o status do aplicativo ou notificar o usuário.
BOOL SetTaskbarOverlayIcon(
UINT nIDResource,
LPCTSTR lpcszDescr);
BOOL SetTaskbarOverlayIcon(
HICON hIcon,
LPCTSTR lpcszDescr);
Parâmetros
nIDResource
Especifica a ID do recurso de um ícone a ser usado como a sobreposição. Confira a descrição de hIcon
para obter detalhes.
lpcszDescr
Um ponteiro para uma cadeia de caracteres que fornece uma versão de texto alt das informações transmitidas pela sobreposição, para fins de acessibilidade.
hIcon
O identificador de um ícone a ser usado como sobreposição. Esse deve ser um ícone pequeno, medindo 16 x 16 pixels a 96 dpi (pontos por polegada). Se um ícone de sobreposição já estiver aplicado ao botão da barra de tarefas, essa sobreposição existente será substituída. Este valor pode ser NULL
. A maneira como um valor NULL
é tratado depende se o botão da barra de tarefas representa apenas uma janela ou um grupo de janelas. É responsabilidade do aplicativo de chamada liberar hIcon
quando ele não for mais necessário.
Valor de retorno
TRUE
se tiver êxito; FALSE
se a versão do sistema operacional for menor que o Windows 7 ou se ocorrer um erro ao definir o ícone.
Comentários
CFrameWnd::SetTitle
Define o título do objeto de janela.
void SetTitle(LPCTSTR lpszTitle);
Parâmetros
lpszTitle
Um ponteiro para uma cadeia de caracteres que contém o título do objeto de janela.
CFrameWnd::ShowControlBar
Chame essa função membro para mostrar ou ocultar a barra de controle.
void ShowControlBar(
CControlBar* pBar,
BOOL bShow,
BOOL bDelay);
Parâmetros
pBar
Ponteiro para a barra de controle a ser mostrada ou oculta.
bShow
Se for TRUE
, especificará que a barra de controle deve ser mostrada. Se for FALSE
, especificará que a barra de controle deve ser oculta.
bDelay
Se for TRUE
, atrasará a exibição da barra de controle. Se for FALSE
, mostrará a barra de controle imediatamente.
CFrameWnd::ShowOwnedWindows
Chame essa função membro para mostrar todas as janelas descendentes do objeto CFrameWnd
.
void ShowOwnedWindows(BOOL bShow);
Parâmetros
bShow
Especifica se as janelas de propriedade devem ser mostradas ou ocultas.
Confira também
Classe CWnd
Gráfico da hierarquia
Classe CWnd
Classe CMDIFrameWnd
Classe CMDIChildWnd
Classe CView
Classe CDocTemplate
Estrutura CRuntimeClass