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
- .cs
Uma estrutura de CREATESTRUCT .
Valor de retorno
Diferente de zero se a criação da janela continuar; 0 para indicar a falha de design.
Comentários
Aviso
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