对话框嵌入子对话框问题

liuxiaomao1988 2014-12-30 09:59:40
我按照下面的方法操作,但是在]m_InnerDlg.MoveWindow()那里出错,求高手指点;我跟踪了下,是在assert(::Iswindow(m_hwnd) || (m_pCtrlSite != NULL)),这里出错的,但不知道原因,求指教



一、对话框中显示对话框的方法:
1、首先创建要在对话框里显示的那个对话框,命名为:IDD_INNER。
设置这个对话框的属性:
1)、“Style”选择“Child”;中文版“样式”选择“下层”。
2)、“Border”为“None”;中文版“边框”选择“无”。

2、为了显示时能够准确定位,我们可以在右边要显示对话框的地方放入一个Pic控件,命名为:IDC_STATIC_RECT,Visible属性去掉。

3、得到Pic控件客户区坐标
//CDlgParent.cpp ——OnInitDialog()
CRect rect;
GetDlgItem(IDC_STATIC_RECT)-> GetWindowRect(&rect);
ScreenToClient(&rect); //千万注意别用成ClientToScreen(&rect);

4、创建并显示对话框
方式一:
//CDlgParent.h
CDialog m_InnerDlg;
//CDlgParent.cpp——OnInitDialog()
m_InnerDlg.Create(IDD_INNER, this);
m_InnerDlg.MoveWindow(rect);
m_InnerDlg.ShowWindow( SW_SHOW );
...全文
217 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2015-02-03
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
jacksonfan 2014-12-30
  • 打赏
  • 举报
回复

方式一:  双击IDD_INNER对话框,新建一个类CInner;
//CDlgParent.h  
CInner m_InnerDlg;  
//CDlgParent.cpp——OnInitDialog()    
m_InnerDlg.MoveWindow(rect);
m_InnerDlg.ShowWindow( SW_SHOW );
方式二:
CInner *m_InnerDlg;
m_InnerDlg = new CInner;
m_InnerDlg->Create(IDD_INNER);  
m_InnerDlg->MoveWindow(rect);
m_InnerDlg->ShowWindow( SW_SHOW ); 
ouyh12345 2014-12-30
  • 打赏
  • 举报
回复
应该是对话框没创建好 试试new,Create

15,980

社区成员

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

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