Classes de janela derivadas
Você pode criar janelas diretamente de CWnd, ou derivar novas classes de janela de CWnd. Esse é o modo como você geralmente cria suas próprias janelas personalizadas. No entanto, a maioria das janelas usadas em um programa do Framework são criadas a partir de uma das classes de janela de estrutura derivadas de CWnd fornecidas pelo MFC.
Classes de janela do quadro
CFrameWnd
Usado para janelas do quadro de SDI que moldam um único documento e o modo de exibição. A janela do quadro é a principal janela do quadro para o aplicativo e a janela do quadro para o documento atual.CMDIFrameWnd
Usado como a janela de quadro principal para aplicativos MDI. A principal janela de quadro é um contêiner para todas as janelas de documento MDI e compartilha sua barra de menus com elas. Uma janela do quadro MDI é uma janela de nível superior que aparece na área de trabalho.CMDIChildWnd
Usado para documentos individuais abertos em uma janela abriu em uma janela de quadro principal de MDI. Cada documento e seu modo de exibição são moldados por uma janela filha do quadro MDI contida pela janela de principal do quadro MDI. Uma janela filho MDI se parece muito com uma típica janela do quadro, mas está contida em uma janela do quadro MDI em vez de ficar na área de trabalho. No entanto, a janela filha MDI não possui uma barra de menus própria e deve compartilhar a barra de menus da janela de quadro MDI que a contém.Para obter mais informações, consulte Janelas do quadro.
Outras classes do Windows derivadas de CWnd
Além das janelas de quadro, várias outras categorias principais de janelas são derivadas de CWnd:
Modos de exibição
Modos de exibição são criados usando CWnd- classe derivada CView (ou uma de suas classes derivadas). Uma exibição é anexada a um documento e atua como intermediária entre o documento e o usuário. Uma exibição é uma janela filho (não um MDI filho) que geralmente preenche a área cliente de uma janela do quadro de SDI ou uma janela do quadro filho MDI (ou essa parte da área cliente não é coberta por uma barra de ferramentas e/ou uma barra de status).Caixas de Diálogo
As caixas de diálogo são criadas usando a classe derivada de CWnd CDialog.Formulários
As exibições de formulário com base em recursos de modelo de caixa de diálogo, como caixas de diálogo, são criadas usando as classes CFormView, CRecordView, ou CDaoRecordView.Controles
Controla como botões, caixas de listagem e caixas de combinação são criados com outras classes derivadas de CWnd. Consulte Tópicos de controle.Barras de Controle
Janelas filho que contêm controles. Os exemplos incluem barras de ferramentas e barras de status. Consulte Barras de controle.
Hierarquia de classe de janela
Consulte o Gráfico da hierarquia MFC na Referência do MFC. Modos de exibição são explicados em Documento/Arquitetura de exibição. As caixas de diálogo são explicadas em Caixas de diálogo.
Criando suas próprias classes da janela de propósito especial
Além das classes de janela fornecidas pela biblioteca de classes, você pode precisar de janelas filhas de propósito especial. Para criar tal janela, crie sua própria classe derivada de CWnd e torne-a uma janela filho de um quadro ou uma exibição. Tenha em mente que a estrutura gerencia a extensão da área cliente de uma janela do quadro de documento. A maioria da área cliente é gerenciada por uma exibição, mas outras janelas, como barras de controle ou suas próprias janelas personalizados, podem compartilhar o espaço com a exibição. Você pode precisar interagir com os mecanismos nas classes CView e CControlBar para posicionar janelas filho em uma área cliente de uma janela de quadro.
Criando Janelas aborda a criação de objetos de janela e as janelas que eles gerenciam.