CMDIChildWnd::Create
Appelez la fonction membre pour créer une fenêtre enfant MDI windows et pour la liaison à l'objet d' 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
);
Paramètres
lpszClassName
Pointe vers une chaîne se terminant par null qui nomme la classe de fenêtre (une structure de WNDCLASS ).Le nom de classe peut être n'importe quel nom enregistré avec la fonction globale d' AfxRegisterWndClass .Doit être NULL pour CMDIChildWndstandard.lpszWindowName
Pointe vers une chaîne se terminant par null qui représente le nom de la fenêtre.Utilisé en tant que texte de la barre de titre.dwStyle
Spécifie les attributs de style de fenêtre.Le style de WS_CHILD est requis.rect
Contient la taille et la position de la fenêtre.La valeur d' rectDefault permet aux fenêtres pour spécifier la taille et la position de nouvel CMDIChildWnd.pParentWnd
Spécifie le parent de la fenêtre.Si NULL, la fenêtre d'application principale est utilisé.pContext
Spécifie une structure de CCreateContext .Ce paramètre peut être NULL.
Valeur de retour
Une valeur différente de zéro si l'opération a réussi ; sinon 0.
Notes
Actuel - la fenêtre frame enfant MDI active peut déterminer la légende de la fenêtre frame parente.Cette fonctionnalité est désactivée en désactivant le bit de style de FWS_ADDTOTITLE de la fenêtre frame enfant.
l'infrastructure appelle cette fonction membre en réponse à un ordre d'utilisateur de créer une fenêtre enfant, et les utilisations d'infrastructure le paramètre d' pContext de connecter correctement la fenêtre enfant à l'application.Lorsque vous appelez Créer, pContext peut être NULL.
Exemple
Exemple 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
}
Exemple 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);
}
Configuration requise
Header: afxwin.h