Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Você pode criar janelas diretamente de CWnd, ou derivar novas classes de janela de CWnd. É assim que você normalmente cria suas próprias janelas personalizadas. No entanto, a maioria das janelas de quadro utilizadas num framework é criada a partir de CWnd uma das classes de janelas de quadro derivadas e fornecidas pelo MFC.
Classes de janela de quadro
CFrameWnd
Usado para janelas de moldura SDI que emolduram um único documento e a sua visualização. A janela de quadro serve tanto como a janela principal da aplicação como a do documento atual.
CMDIFrameWnd
Usada como a janela principal para aplicações MDI. A janela do quadro principal é um contêiner para todas as janelas de documentos MDI e compartilha sua barra de menus com elas. Uma janela de moldura MDI é uma janela de nível superior que aparece na área de trabalho.
CMDIChildWnd
Usado para documentos individuais abertos numa janela de moldura principal MDI. Cada documento e sua visualização são definidos por uma janela de frame filha MDI, contida na janela de frame principal MDI. Uma janela filha MDI parece-se muito com uma janela de moldura típica, mas está contida dentro de uma janela de moldura MDI em vez de ficar na área de trabalho. No entanto, a janela MDI filho não tem uma barra de menu própria. Ele deve compartilhar a barra de menus da janela de quadro MDI que o contém.
Para obter mais informações, consulte Janelas de quadro.
Outras classes de janela derivadas de CWnd
Além das janelas de moldura, várias outras categorias principais de janelas são derivadas de CWnd:
Visualizações:
As exibições são criadas usando a classe derivada deCWndCView(ou uma das suas próprias classes derivadas). Uma vista é anexada a um documento e atua como um intermediário entre o documento e o utilizador. Um modo de exibição é uma janela secundária (não uma janela secundária MDI) que normalmente preenche a área do cliente de uma janela principal SDI ou de uma janela secundária MDI (ou a parte da área do cliente não coberta por uma barra de ferramentas ou uma barra de estado).Caixas de diálogo:
As caixas de diálogo são criadas usando aCWndclasseCDialog-derivada.Formulários:
As exibições de formulário baseadas em recursos de modelo de diálogo, como caixas de diálogo, são criadas usando classesCFormView,CRecordViewouCDaoRecordView.Controlos:
Controles como botões, caixas de listagem e caixas de combinação são criados usando outras classes derivadas deCWnd. Consulte Tópicos de controle.Barras de controlo:
Janelas filho que contêm controles. Os exemplos incluem barras de ferramentas e barras de estado. Consulte Barras de controlo.
Hierarquia de classes de janela
Consulte o gráfico de hierarquia MFC na Referência MFC. As visualizações são explicadas em Arquitetura de documento/exibição. As caixas de diálogo são explicadas em Caixas de diálogo.
Criando as suas próprias classes de janela Special-Purpose
Além das classes de janela fornecidas pela biblioteca de classes, poderá necessitar de janelas subordinadas com finalidades específicas. Para criar uma janela assim, crie a sua própria classe derivada de CWnd e torne-a uma janela filha de uma moldura ou vista. Tenha em mente que a estrutura gerencia a extensão da área do cliente de uma janela de quadro de documento. A maior parte da área do cliente é gerida por uma vista, mas outras janelas, como barras de controlo ou as suas próprias janelas personalizadas, podem partilhar o espaço com a vista. Pode ser necessário interagir com os mecanismos nas classes CView e CControlBar para posicionar janelas filho na área do cliente de uma janela de moldura.
Criar janelas discute a criação de objetos de janela e as janelas que eles gerenciam.