CMDIChildWnd::Create
Chamar essa função de membro para criar uma janela filho MDI do windows para e anexá-la ao objeto de CMDIChildWnd .
virtual BOOL Create(
LPCTSTR lpszClassName,
LPCTSTR lpszWindowName,
DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_OVERLAPPEDWINDOW,
const RECT& rect = rectDefault,
CMDIFrameWnd* pParentWnd = NULL,
CCreateContext* pContext = NULL
);
Parâmetros
lpszClassName
Aponta para uma cadeia de caracteres NULL- finalizada que nomeie a classe do windows (uma estrutura de WNDCLASS ). O nome da classe pode ser qualquer nome registrado com a função global de AfxRegisterWndClass . Deve ser NULO para CMDIChildWndpadrão.lpszWindowName
Aponta para uma cadeia de caracteres NULL- finalizada que representa o nome da janela. Usado como o texto da barra de título.dwStyle
Especifica os atributos de estilo da janela. O estilo de WS_CHILD é necessário.rect
Contém o tamanho e a posição da janela. O valor de rectDefault permite que as janelas especifique o tamanho e a posição de novo CMDIChildWnd.pParentWnd
Especifica o pai da janela. Se NULO, a janela principal do aplicativo é usado.pContext
Especifica uma estrutura de CCreateContext . Este parâmetro pode ser NULO.
Valor de retorno
Diferente de zero se com êxito; se não 0.
Comentários
A janela filho ativa no momento do quadro MDI pode determinar a legenda da janela pai do quadro. Esse recurso é desativado desativando o bit de estilo de FWS_ADDTOTITLE da janela filho do quadro.
A estrutura chama essa função de membro em resposta a um comando de usuário criar uma janela filho, e usos da estrutura o parâmetro de pContext conectar corretamente a janela filho para o aplicativo. Quando você chama Criar, pContext pode ser NULO.
Exemplo
Exemplo 1:
// CMainFrame::OnFileNewCMdiChildWnd() is a menu command handler for the
// CMainFrame class, which in turn is a CMDIFrameWnd-derived class.
// It shows the creation of a standard Windows MDI child window using
// the registered CMDIChildWnd class.
void CMainFrame::OnFileNewMdiChildWnd()
{
CMDIChildWnd* pMDIChildWnd = new CMDIChildWnd;
VERIFY(pMDIChildWnd->Create(
NULL, // standard CMDIChildWnd class
_T("My MDIChildWnd"), // caption of MDI child window
WS_CHILD | WS_VISIBLE | WS_OVERLAPPEDWINDOW, // window styles
rectDefault, // default rectangle size
this)); // parent window; can be NULL
// the default PostNcDestroy handler will delete this object when destroyed
}
Exemplo 2:
// CMainFrame::OnHello() is a menu command handler for the CMainFrame
// class, which in turn is a CMDIFrameWnd-derived class.
// It shows the creation of a Windows MDI child window using a custom
// window class. The custom window class is registered in
// CHelloWnd::Create(). CHelloWnd is a CMDIChildWnd-derived class.
void CMainFrame::OnHello()
{
CHelloWnd *pHelloWnd = new CHelloWnd;
if (!pHelloWnd->Create(_T("Hello"),
WS_CHILD | WS_VISIBLE | WS_OVERLAPPEDWINDOW,
rectDefault, this))
return;
// the default PostNcDestroy handler will delete this object when destroyed
}
BOOL CHelloWnd::Create(
LPCTSTR szTitle,
LONG style /* = 0 */,
const RECT& rect /* = rectDefault */,
CMDIFrameWnd* parent /* = NULL */)
{
// Setup the shared menu
SetHandles(::LoadMenu(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_HELLO)),
NULL);
// Register a custom WndClass and create a window.
// This must be done because CHelloWnd has a custom icon.
LPCTSTR lpszHelloClass =
AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW,
LoadCursor(NULL, IDC_ARROW),
(HBRUSH) (COLOR_WINDOW+1),
LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_HELLO)));
return CMDIChildWnd::Create(lpszHelloClass, szTitle, style, rect, parent);
}
Requisitos
Cabeçalho: afxwin.h