CWnd::PreCreateWindow
CWnd オブジェクトに結び付けられた Windows のウィンドウが作成される前に、フレームワークから呼び出されます。
virtual BOOL PreCreateWindow(
CREATESTRUCT& cs
);
パラメーター
- cs
CREATESTRUCT の構造。
戻り値
ウィンドウの作成を続行は、; 作成エラーを示す 0。
解説
注意 |
---|
CWnd::PreCreateWindow は this のポインターに、メニューが NULL であり、スタイルが WS_CHILDが含まれている場合 cs の hMenu のメンバーを割り当てます。適切な動作に、ダイアログのコントロールに NULLではない ID があることを確認します。 この変更は、マネージまたはネイティブ相互運用シナリオのクラッシュを修正。CWnd::Create の TRACE のステートメントは、開発者の問題を通知します。 |
は、この関数を直接呼び出さないでください。
null のウィンドウ クラスの名前と、代替のチェックこの関数の既定の実装では、適切な既定値。ウィンドウが作成される前に CREATESTRUCT の構造を変更するには、このメンバー関数をオーバーライドします。
CWnd 派生した各クラスは、独自の機能をから PreCreateWindowのオーバーライドに追加します。は、PreCreateWindow のこれらの派生は文書化されていません。スタイルの間の各クラスおよび依存関係に適したスタイルを確認するには、アプリケーションの基本クラスの MFC ソース・コードを確認できます。PreCreateWindow, をオーバーライドする場合、アプリケーションの基本クラスで使用されるスタイルは、MFC ソース・コードから収集した情報を使用して必要な機能を提供するかどうかを確認できます。
ウィンドウ スタイルの変更の詳細については、MFC によって作成されたウィンドウ スタイルを変更しますを参照してください。
使用例
// 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);
}
必要条件
ヘッダー: afxwin.h