一个创建对话框的奇怪的问题!

ybsilly 2005-08-13 08:15:06
创建一个非模态的对话框
在一个对话框的OnViewmsgButton函数中有如下代码:

CMsgViewer m_hMessageDialog;
if(!m_hMessageDialog.Create(IDD_MSGVIEWER_DIALOG,NULL))
{
MessageBox(_T("对话框创建失败!"),"提示",MB_OK);
return;
}
m_hMessageDialog.SetWindowPos(NULL,0,0,-1,-1,SWP_SHOWWINDOW);
m_hMessageDialog.ShowWindow(SW_SHOWNORMAL);

对话框是popup类型的。
这时候点击按钮就弹不出创建的对话框
如果把if(!m_hMessageDialog.Create(IDD_MSGVIEWER_DIALOG,NULL))改为
if(m_hMessageDialog.Create(IDD_MSGVIEWER_DIALOG,NULL))
就能弹出创建的对话框,但是也一块弹出“对话框创建失败”的提示框,点提示框的OK按钮就会两个对话框一块关闭。
不知道是什么原因?
...全文
97 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
0黄瓜0 2005-08-13
  • 打赏
  • 举报
回复
“ybsilly”,猛一看,象宜宾思丽雅。你不会是宜宾的吧?
0黄瓜0 2005-08-13
  • 打赏
  • 举报
回复
还有这句:m_hMessageDialog.SetWindowPos(NULL,0,0,-1,-1,SWP_SHOWWINDOW);
你把窗体的宽度设置为-1,那本来创建成功的对话框,也看不倒了。注释了这句或改为
m_hMessageDialog.SetWindowPos(NULL,0,0,200,100,SWP_SHOWWINDOW);并且把

CMsgViewer m_hMessageDialog; 这句移动到消息所在的头文件中,正确运行。
ybsilly 2005-08-13
  • 打赏
  • 举报
回复
我怎么向生成的对话框中传个值啊?
在生成的时候用m_pDlgl不行啊

0黄瓜0 2005-08-13
  • 打赏
  • 举报
回复
CMsgViewer m_hMessageDialog;
这句不能放在函数里,否则函数结束,你的对话框也消失。在类的头文件里定义。
lixiaosan 2005-08-13
  • 打赏
  • 举报
回复
CTestDlg *m_pDlg1 =new CTestDlg;
m_pDlg1->Create(IDD_TEST_DLG,NULL);
m_pDlg1->ShowWindows(SW_SHOW);

在对话框得析构函数中释放指针
if(m_pDlg1 != NULL)
{
delete m_pDlg1;
m_pDlg1 = NULL;
}
ybsilly 2005-08-13
  • 打赏
  • 举报
回复
另外,如何在别的对话框中获得程序中已经创建的其它的对话框的句柄?
GetDlgItem似乎不行啊

15,980

社区成员

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

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