CWnd::CreateEx
更新 : 2007 年 11 月
dwExStyle で指定した拡張スタイルで、オーバーラップ ウィンドウ、ポップアップ ウィンドウ、または子ウィンドウを作成します。
virtual BOOL CreateEx(
DWORD dwExStyle,
LPCTSTR lpszClassName,
LPCTSTR lpszWindowName,
DWORD dwStyle,
int x,
int y,
int nWidth,
int nHeight,
HWND hWndParent,
HMENU nIDorHMenu,
LPVOID lpParam = NULL
);
virtual BOOL CreateEx(
DWORD dwExStyle,
LPCTSTR lpszClassName,
LPCTSTR lpszWindowName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID,
LPVOID lpParam = NULL
);
パラメータ
dwExStyle
作成される CWnd の拡張スタイルを指定します。ウィンドウに対して任意の拡張ウィンドウ スタイルが適用できます。lpszClassName
Windows クラス (WNDCLASS 構造体) 名を表す null で終わる文字列へのポインタ。クラス名は AfxRegisterWndClass 関数で登録された任意の名前、または任意の組み込みコントロール クラス名です。lpszWindowName
ウィンドウ名を持つ NULL で終わる文字列へのポインタ。dwStyle
ウィンドウのスタイル属性を指定します。設定できる値は「ウィンドウ スタイル」と「CWnd::Create」の説明を参照してください。x
CWnd ウィンドウの初期 x 位置を指定します。y
CWnd ウィンドウの初期 y 位置を指定します。nWidth
CWnd ウィンドウの幅を (デバイス単位で) 指定します。nHeight
CWnd ウィンドウの高さを (デバイス単位で) 指定します。hwndParent
作成される CWnd ウィンドウの親ウィンドウまたはオーナー ウィンドウを指定します。NULL を指定すると、トップレベルのウィンドウになります。nIDorHMenu
メニューまたは子メニューの識別子を指定します。ウィンドウのスタイルによって意味が異なります。lpParam
CREATESTRUCT 構造体の lpCreateParams フィールドで参照されるデータへのポインタを指定します。rect
ウィンドウのサイズと位置を pParentWnd のクライアント座標で指定します。pParentWnd
親ウィンドウを指定します。nID
子ウィンドウの ID を指定します。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
CreateEx のパラメータには WNDCLASS、ウィンドウ タイトル、ウィンドウ スタイル、およびウィンドウの初期位置とサイズ (省略可能) を指定します。CreateEx はウィンドウの親ウィンドウ (ある場合) や ID も指定します。
CreateEx が実行されたとき、Windows は WM_GETMINMAXINFO、WM_NCCREATE、WM_NCCALCSIZE、WM_CREATE メッセージをウィンドウに送ります。
既定のメッセージ処理を拡張するためには、CWnd からクラスを派生し、新しいクラスにメッセージ マップを追加します。さらに、メッセージを処理するためのメンバ関数を用意します。新しいクラスに必要な初期化を行う場合などに、OnCreate をオーバーライドします。
派生クラスにさらに機能を追加するには、OnMessage メッセージ処理関数をオーバーライドします。
WS_VISIBLE スタイルが指定されたとき Windows は、ウィンドウをアクティブにし、ウィンドウを表示するために必要なすべてのメッセージをウィンドウに送ります。ウィンドウ スタイルでタイトル バーを指定したときは、lpszWindowName パラメータで指定したウィンドウ タイトルがタイトル バーに表示されます。
dwStyle パラメータには、ウィンドウ スタイルの任意の組み合わせを指定できます。
使用例
void CMyDlg::OnCreateExtendedControl()
{
// m_pWndStaticEx is a CWnd* member of CMyDlg
m_pWndStaticEx = new CStatic;
m_pWndStaticEx->CreateEx(WS_EX_CLIENTEDGE, // Make a client edge label.
_T("STATIC"), _T("Hi"),
WS_CHILD | WS_TABSTOP | WS_VISIBLE,
5, 5, 30, 30, m_hWnd, (HMENU)2345);
}
必要条件
ヘッダー : afxwin.h