[MFC] CreateDialog, проблема с интеграцией с WinApi

sanek300509

создал проект MFC -> Dll
В начале создается HWND при помощи CreateWindow.
// Create the window. The WndProc will set _hWnd.
CreateWindowEx(0,
EB_CLASS_NAME,
NULL,
WS_CHILD | WS_CLIPSIBLINGS | WS_BORDER,
rc.left,
rc.top,
rc.right - rc.left,
rc.bottom - rc.top,
_hwndParent,
NULL,
g_hInst,
(LPVOID)this);
дальше пытаюсь
if (_pMainDialog == NULL) {
_pMainDialog = new MainDialog;
//вот тут надо создать диалог
// аналог _hWndDialog = CreateDialog(g_hInst, MAKEINTRESOURCE(108 _hWnd, DialogMainOptions);
}
код стандартный для MainDialog
// MainDialog dialog
IMPLEMENT_DYNAMIC(MainDialog, CDialog)
MainDialog::MainDialog(CWnd* pParent /*=NULL*/)
: CDialog(MainDialog::IDD, pParent)
{
}
MainDialog::~MainDialog
{
}
void MainDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(MainDialog, CDialog)
END_MESSAGE_MAP
// MainDialog message handlers
Как сделать аналогию с CreateDialog?
Как создать так чтобы _hWnd был отцом MainDialog?
заранее спасибо.

AVGO

MainDialog.Crate( MainDialog.IDD, CWnd::Fromhandle( _hWnd ) );

laki

а обработчик какой повесится?
охото чтобы класс слушал интерфейс.

AVGO

вопрос мне не понятен, какой обработчик, какой интерфейс?
код надо читать как
MainDialog yourDlg;
yourDlg.Crate( MainDialog::IDD, CWnd::Fromhandle( _hWnd ) );
все..
будет создан немодальный диалог по соответствующему темплейту, все сообщения пойдут как надо в объект класса MainDialog
Rem: как правило визард кладет в енум MainDialog::IDD соответствующий русурсID, если это не так то код надо переписать в yourDlg.Crate( IDD_MY_DIALOG, CWnd::Fromhandle( _hWnd ) );
Оставить комментарий
Имя или ник:
Комментарий: