Objetos de janela

O MFC fornece a classe CWnd para encapsular o identificador HWND de uma janela. O objeto CWnd é um objeto de janela C++, diferente do HWND que representa uma janela do Windows, mas contendo-o. Use CWnd para derivar suas próprias classes de janela filho ou use uma das muitas classes MFC derivadas de CWnd. A classe CWnd é a classe base para todas as janelas, incluindo janelas de quadros, caixas de diálogo, janelas filho, controles e barras de controle, como barras de ferramentas. Uma boa compreensão da relação entre um objeto de janela C++ e um HWND é crucial para uma programação eficaz com o MFC.

O MFC fornece algumas funcionalidades e gerenciamento padrão do Windows, mas você pode derivar sua própria classe de CWnd e usar suas funções de membro para personalizar a funcionalidade fornecida. Você pode criar janelas filho construindo um objeto CWnd e chamando sua função membro Criar, e então personalizar as janelas filho usando funções membro CWnd. Você pode inserir objetos derivados do CView, como exibições de formulário ou exibições de árvore, em uma janela de quadro. E você pode dar suporte a várias exibições de seus documentos por meio de painéis de divisor fornecidos pela classe CSplitterWnd.

Cada objeto derivado da classe CWnd contém um mapa de mensagens por meio do qual você pode mapear mensagens do Windows ou IDs de comando para seus próprios manipuladores.

A literatura geral sobre programação para Windows é um bom recurso para aprender a usar as funções membro CWnd, que encapsulam as APIs HWND.

Funções para operar em um CWnd

CWnd e suas classes de janela derivadas fornecem construtores, destruidores e funções membro para inicializar o objeto, criar as estruturas subjacentes do Windows e acessar o encapsulado HWND. CWnd também fornece funções membro que encapsulam APIs do Windows para enviar mensagens, acessar o estado da janela, converter coordenadas, atualizar, rolar, acessar a Área de Transferência e muitas outras tarefas. A maioria das APIs de gerenciamento de janelas do Windows que assumem um argumento HWND são encapsuladas como funções membro de CWnd. Os nomes das funções e seus parâmetros são preservados na função membro CWnd. Para obter detalhes sobre as APIs do Windows encapsuladas por CWnd, consulte a classe CWnd.

Mensagens CWnd e Windows

Uma das principais finalidades de CWnd é fornecer uma interface para lidar com mensagens do Windows, como WM_PAINT ou WM_MOUSEMOVE. Muitas das funções membro de CWnd são manipuladores para mensagens padrão – aquelas que começam com o identificador afx_msg e o prefixo "Ativado", como OnPaint e OnMouseMove. O Tratamento e mapeamento de mensagens aborda em detalhes as mensagens e o tratamento de mensagens. As informações lá se aplicam igualmente às janelas da estrutura e àquelas que você mesmo cria para fins especiais.

O que mais você deseja saber?

Confira também

Windows