Pravish
January 14th, 2008, 01:19 PM
hey, I m using DLGTEMPLATE structure for creating dialog template in memory.
OnCommand() the following function is suppose to create the dialog in memory. Although (digparam!=0)i.e. the DialgoBoxIndirect() succeeds(presumably), the dialog doesnt show up. any ideas why?
INT_PTR MyDynamicDlg(HWND hWnd)
{
LPDLGTEMPLATE pDlg = new DLGTEMPLATE;
HINSTANCE hInstance = (HINSTANCE)GetModuleHandle(NULL);
pDlg->style = WS_CHILD | WS_VISIBLE | WS_OVERLAPPED;
pDlg->dwExtendedStyle = NULL;
pDlg->cdit = 5;
pDlg->cx = 200;
pDlg->cy = 200;
pDlg->x = 0;
pDlg->y = 0;
INT_PTR dlgparam = DialogBoxIndirect(
hInstance,//HINSTANCE hInstance,
pDlg,//LPCDLGTEMPLATE lpTemplate,
hWnd,//HWND hWndParent,
(DLGPROC)MyDlgProc//DLGPROC lpDialogFunc
);
if(dlgparam == 0)
MessageBox(hWnd,"No dialog created","NO DLG", MB_OK);
return dlgparam;
}
OnCommand() the following function is suppose to create the dialog in memory. Although (digparam!=0)i.e. the DialgoBoxIndirect() succeeds(presumably), the dialog doesnt show up. any ideas why?
INT_PTR MyDynamicDlg(HWND hWnd)
{
LPDLGTEMPLATE pDlg = new DLGTEMPLATE;
HINSTANCE hInstance = (HINSTANCE)GetModuleHandle(NULL);
pDlg->style = WS_CHILD | WS_VISIBLE | WS_OVERLAPPED;
pDlg->dwExtendedStyle = NULL;
pDlg->cdit = 5;
pDlg->cx = 200;
pDlg->cy = 200;
pDlg->x = 0;
pDlg->y = 0;
INT_PTR dlgparam = DialogBoxIndirect(
hInstance,//HINSTANCE hInstance,
pDlg,//LPCDLGTEMPLATE lpTemplate,
hWnd,//HWND hWndParent,
(DLGPROC)MyDlgProc//DLGPROC lpDialogFunc
);
if(dlgparam == 0)
MessageBox(hWnd,"No dialog created","NO DLG", MB_OK);
return dlgparam;
}