Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Observação
A biblioteca Microsoft Foundation Classes (MFC) continua sendo suportada. No entanto, não estamos mais adicionando recursos ou atualizando a documentação.
Em sua versão da função, o WinMain MFC registra várias classes de janela padrão para você. Como você normalmente não edita MFC's WinMain, essa função não oferece nenhuma oportunidade de alterar os estilos de janela padrão do MFC. Este artigo explica como você pode alterar os estilos de uma classe de janela preregistrada em um aplicativo existente.
Alterando estilos em um novo aplicativo MFC
Se você estiver usando o Visual C++ 2.0 ou posterior, poderá alterar os estilos de janela padrão no Assistente de Aplicativo ao criar seu aplicativo. Na página Recursos de interface do usuário do Assistente de aplicativo, você pode alterar estilos para a janela de quadro principal e as janelas filho do MDI. Para qualquer tipo de janela, você pode especificar a espessura do quadro (grossa ou fina) e qualquer um dos seguintes itens:
Se a janela tem controles Minimize ou Maximize.
Se a janela aparece inicialmente minimizada, maximizada ou não.
Para janelas de quadros principais, você também pode especificar se a janela tem um Menu do Sistema. Para janelas filho do MDI, você pode especificar se a janela dá suporte a painéis de divisor.
Alterando estilos em um aplicativo existente
Se você estiver alterando os atributos de janela em um aplicativo existente, siga as instruções no restante deste artigo.
Para alterar os atributos de janela padrão usados por um aplicativo de estrutura criado com o Assistente de aplicativo, substitua a função de membro virtual PreCreateWindow da janela.
PreCreateWindow permite que um aplicativo acesse o processo de criação normalmente gerenciado internamente pela classe CDocTemplate . A estrutura chama PreCreateWindow pouco antes de criar a janela. Ao modificar a estrutura CREATESTRUCT passada para PreCreateWindow, seu aplicativo pode alterar os atributos usados para criar a janela. Por exemplo, para garantir que uma janela não use uma barra de título, use a seguinte operação de bits:
// cs has been declared as CREATESTRUCT& cs;
cs.style &= ~WS_CAPTION;
O aplicativo de exemplo CTRLBARS demonstra essa técnica para alterar atributos de janela. Dependendo do que seu aplicativo alterar em PreCreateWindow, pode ser necessário chamar a implementação da classe base da função.
A discussão a seguir aborda o caso SDI e o caso MDI.
O caso SDI
Em um único aplicativo de interface de documento (SDI), o estilo de janela padrão na estrutura é uma combinação dos estilos WS_OVERLAPPEDWINDOW e FWS_ADDTOTITLE .
FWS_ADDTOTITLE é um estilo específico do MFC que instrui a estrutura a adicionar o título do documento à legenda da janela. Para alterar os atributos de janela em um aplicativo SDI, substitua a função PreCreateWindow em sua classe derivada de CFrameWnd (que o Assistente de Aplicativo chama de CMainFrame). Por exemplo:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT &cs)
{
// Call the base-class version
if (!CFrameWnd::PreCreateWindow(cs))
return FALSE;
// Create a window without min/max buttons or sizable border
cs.style = WS_OVERLAPPED | WS_SYSMENU | WS_BORDER;
// Size the window to 1/3 screen size and center it
cs.cy = ::GetSystemMetrics(SM_CYSCREEN) / 3;
cs.cx = ::GetSystemMetrics(SM_CXSCREEN) / 3;
cs.y = ((cs.cy * 3) - cs.cy) / 2;
cs.x = ((cs.cx * 3) - cs.cx) / 2;
return TRUE;
}
Esse código cria uma janela de quadro principal sem botões Minimizar e Maximizar e sem uma borda considerável. A janela é centralizada inicialmente na tela.
O caso MDI
Um pouco mais de trabalho é necessário para alterar o estilo de janela de uma janela filho em um aplicativo MDI (interface de documento múltiplo). Por padrão, um aplicativo MDI criado com o Assistente de Aplicativo usa a classe CMDIChildWnd padrão definida no MFC. Para alterar o estilo de janela de uma janela filho MDI, você deve derivar uma nova classe de CMDIChildWnd e substituir todas as referências a CMDIChildWnd no seu projeto por referências à nova classe. Provavelmente, a única referência a CMDIChildWnd no aplicativo estará localizada na função membro InitInstance do aplicativo.
O estilo de janela padrão usado em um aplicativo MDI é uma combinação dos estilos WS_CHILD, WS_OVERLAPPEDWINDOW e FWS_ADDTOTITLE . Para alterar os atributos de janela das janelas filho de um aplicativo MDI, substitua a função PreCreateWindow em sua classe derivada de CMDIChildWnd. Por exemplo:
BOOL CChildFrame::PreCreateWindow(CREATESTRUCT &cs)
{
// Create a child window without the maximize button
cs.style &= ~WS_MAXIMIZEBOX;
return CMDIChildWnd::PreCreateWindow(cs);
}
Esse código cria janelas filho MDI sem um botão Maximizar.