MDIでのダイアログ生成
VC++2005でMDIアプリケーションを作成しています。
ダイアログベースでは、DoModal()にてダイアログを生成していましたが、
MDIでのダイアログ生成の方法が分かりません。。
調べた結果、
(1)CreateWindow()にてクライアントウィンドウを作成
(2)CreateMDIWindow()にて子ウィンドウを作成
の順序で処理を行うことは分かりましたが、
関数の一部の引数に何を設定してやれば良いのかが不明です。。
※下記はネット上にあったサンプルソースです。
「???」の箇所が不明な引数です。
(1)
CreateWindow(
TEXT("MDICLIENT"), //MDICLIENT は固定です
NULL,
WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN,
0, 0, 0, 0,
hWnd, //メインウィンドウのハンドル←???
(HMENU)1, //←???
hInst, //インスタンスハンドル←???
(LPSTR)&ccs //CLIENTCREATESTRUCT構造体のポインタ←???
);
(2)
HWND CreateMDIWindow(
MDI_CHILD , //ウィンドウクラス名
TITLE , //ウィンドウのタイトルバーテキスト
0 , //ウィンドウスタイル。WS_MAXIMIZE(最大化表示)など
CW_USEDEFAULT , //X座標
CW_USEDEFAULT , //Y座標
CW_USEDEFAULT , //幅
CW_USEDEFAULT , //高さ
hClientWindow , //クライアントウィンドウのハンドル ←???
hIns , //インスタンスハンドル ←???
0 //アプリケーション定義の値
);
なお、行いたい処理の流れとしては、
CTestDialogクラスより、CTest2Dialogクラスのダイアログを、
呼び出したいのです。
うまく説明できず申し訳ありませんが、
お詳しい方おられましたら、具体例など交えてご説明頂けると幸いです。
お手数ですが、どうか宜しくお願い致します。
補足
説明不足でした。申し訳ありません。 補足説明をさせていただきますと、MFCアプリWIZで時計を作っており、 針をBitmapで描画したいわけです。 初心者でして、ネット上のサンプルソース等を参考に実装しているのですが、 サンプルソース BOOL InitDIB(HWND hWnd) { HDC hDC; BITMAPINFOHEADER bi; bi.biSize = sizeof(BITMAPINFOHEADER); bi.biWidth = 256; bi.biHeight = -256; //top-down bi.biPlanes = 1; bi.biBitCount = 32; bi.biCompression = BI_RGB; bi.biSizeImage = 0; bi.biXPelsPerMeter = 0; bi.biYPelsPerMeter = 0; bi.biClrUsed = 0; bi.biClrImportant = 0; hDC = GetDC(hWnd); hBmp = CreateDIBSection(hDC, (LPBITMAPINFO)&bi, DIB_RGB_COLORS, (void **)(&buf), NULL, 0); if(!hBmp) return FALSE; memDC = CreateCompatibleDC(hDC); SelectObject(memDC, hBmp); ReleaseDC(hWnd, hDC); return TRUE; } を流用したい時に、そういえばウィンドウハンドルってMFCアプリで どのように扱えばいいのかなと疑問に思い、質問させていただきました。 基本のところだと思うのですが、早急に機能実現をしないといけない 状況でして、自己解決に限界を感じました。 よろしくお願いいたします。