CWnd::PreCreateWindow
Volána před vytvořením okna Windows připojených k tomuto rámci CWnd objektu.
virtual BOOL PreCreateWindow(
CREATESTRUCT& cs
);
Parametry
- cs
A CREATESTRUCT struktury.
Vrácená hodnota
Nenulová hodnota, pokud by měl pokračovat vytváření okna; 0 označující selhání vytváření.
Poznámky
Upozornění |
---|
CWnd::PreCreateWindownyní přiřadí člen hMenu cs se this ukazatele, pokud je v nabídce NULL a styl obsahuje WS_CHILD .Pro správnou funkci zajistit kontrolu dialogové okno ID, které není NULL . Tato změna řeší selhání spravované nativní interop scénářů.A TRACE prohlášení v CWnd::Create upozornění vývojář problém. |
Nikdy přímo volání této funkce.
Výchozí implementace tato funkce vyhledá NULL název třídy okna a nahradí odpovídající výchozí.Potlačit toto členské funkce Upravit CREATESTRUCT struktury před vytvořením okna.
Jednotlivé třídy odvozené z CWnd vlastní funkce přidá k jeho přepsání PreCreateWindow .Podle návrhu těchto derivátů z PreCreateWindow nejsou popsány.Určit styly, které jsou vhodné pro každou třídu a vzájemné závislosti mezi styly, můžete zkoumat zdrojový kód pro základní třídy aplikace MFC.Pokud zvolíte přepsání PreCreateWindow, lze zjistit, zda styly použité v základní třídě aplikace poskytují funkce, je třeba pomocí informace shromážděné ze zdrojového kódu MFC.
Další informace o změně stylů okna naleznete Změna styly okna vytvořené MFC.
Příklad
// 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);
}
Požadavky
Záhlaví: afxwin.h