CWnd::PreCreateWindow

Chamado pela estrutura antes de criação da janela do windows anexada a esse objeto de CWnd .

virtual BOOL PreCreateWindow(
   CREATESTRUCT& cs 
);

Parâmetros

Valor de retorno

Diferente de zero se a criação da janela continuar; 0 para indicar a falha de design.

Comentários

Observação de cuidadoCuidado

AgoraCWnd::PreCreateWindow atribui o membro de hMenu de cs ao ponteiro de this se o menu é NULL e o estilo contém WS_CHILD.Para a funcionalidade adequada, certifique-se que o controle de caixa de diálogo tenha uma identificação que não é NULL.

Essa alteração corrigir uma falha cenários gerenciados/nativos de interoperabilidade.Uma declaração de TRACE em CWnd::Create alerta o desenvolvedor do problema.

Nunca chamar essa função diretamente.

A implementação padrão de verificações de essa função para um nome de classe e substitutos da janela de NULO uma opção apropriada.Substituir essa função de membro para alterar a estrutura de CREATESTRUCT antes da janela ser criada.

Cada classe derivada de CWnd adicionar sua própria funcionalidade a sua sobrescrita de PreCreateWindow.Por design, essas derivações de PreCreateWindow não estão documentadas.Para determinar os estilos a cada classe e a interdependências entre os estilos, você pode analisar o código-fonte MFC para a classe base do seu aplicativo.Se você optar por substituir PreCreateWindow, você pode determinar se os estilos usados na classe base do seu aplicativo fornecem a funcionalidade que você precisa usando as informações obtidas de origem MFC.

Para obter mais informações sobre como alterar estilos de janela, consulte Alterando os estilos de uma janela projetada pelo MFC.

Exemplo

// alter the styles of the mdi frame window
BOOL CMdiChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{
   // 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 CMDIChildWnd::PreCreateWindow(cs);
}

Requisitos

Cabeçalho: afxwin.h

Consulte também

Referência

CWnd Class

Gráfico de hierarquia

CWnd::Create

CWnd::CreateEx

Estrutura CREATESTRUCT