请教高手:win32如何用DialogBoxIndirectParam创建对话框?

篮球帮 2010-05-13 12:09:20
//声明:
int UICreateModelDialog(HWND hParent);
BOOL CALLBACK MyDialogProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam);
int nResult;
//在主模板中调用
nResult = UICreateModelDialog(hWnd);//hWnd为主模板句柄
//定义
int UICreateModelDialog(HWND hParent)
{
static DLGTEMPLATE dlgtmp;
dlgtmp.cdit = 0;
dlgtmp.cx = 300;
dlgtmp.cy = 200;
dlgtmp.style = WS_SYSMENU | WS_BORDER | WS_VISIBLE;
dlgtmp.dwExtendedStyle = 0;
dlgtmp.x = 10;
dlgtmp.y = 10;

return DialogBoxIndirectParam(GetModuleHandle(NULL), &dlgtmp, hParent, MyDialogProc, 0);
}

BOOL CALLBACK MyDialogProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_INITDIALOG:
return 0;

case WM_PAINT:
return 0;

case WM_CLOSE:
EndDialog(hDlg, nResult);
return 0;

case WM_DESTROY:
DestroyWindow(hDlg);
return 0;
}
return DefDlgProc(hDlg, msg, wParam, lParam);
}

请问下各位高手,为什么会出错?先谢了。
...全文
1328 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
篮球帮 2010-05-13
  • 打赏
  • 举报
回复
可以了,谢谢。
fox000002 2010-05-13
  • 打赏
  • 举报
回复
return DefDlgProc(hDlg, msg, wParam, lParam);

改成

return FALSE;

Dialog 自己会调用默认的消息处理函数
篮球帮 2010-05-13
  • 打赏
  • 举报
回复
我是在窗口过程中调用的,例如点一下左键就弹出一个窗口,但我一点左键就连主窗口也消失了
篮球帮 2010-05-13
  • 打赏
  • 举报
回复
有WinMain呀,没有的话程序怎能运行起来呢
fox000002 2010-05-13
  • 打赏
  • 举报
回复
没有 WinMain 啊

入口函数中调用对话框创建语句

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧