对话框的弹出

daxxxiaoxx 2014-06-10 02:29:20
我有一个主对话框A(模态的),在A上有一个按钮B,点击按钮B弹出桌面对话框C
C有一个按钮D,点击D弹出模态对话框F。


问题是当我弹出F的时候,正常状态下(我认为的)F在C上面,C在A上面。
但是现在问题是为什么总是F在A上面,A在C上面。
就是A老是把C盖住,给人感觉F的父对话框是A。这是为什么?

求大神们指教。
...全文
124 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2014-07-12
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
schlafenhamster 2014-06-12
  • 打赏
  • 举报
回复
其实 CDataSetDlg 的 父窗口 是 DeskTop 的结果是: 任务栏 有 2个 DlgA (主对话框), DlgB(点击出来的对话框)。 这 2个 对话框 可以 任意切换 和 关闭。 如点击代码: CDataSetDlg dlgB(GetDesktopWindow()); djgB.Domodel();
schlafenhamster 2014-06-12
  • 打赏
  • 举报
回复
virtual BOOL Create( UINT nIDTemplate, CWnd* pParentWnd = NULL ); 就是说 默认的 “CWnd* pParentWnd = NULL ” , 被你 设置为 GetDesktopWindow() 那么 CDataSetDlg 的 父窗口 是 DeskTop ,而 不再 是 =0 了。 有 什么 特殊 需求 吗 ?
schlafenhamster 2014-06-12
  • 打赏
  • 举报
回复
1. new CDataSetDlg( GetDesktopWindow() ); m_pCDataSetDlg->Create( CDataSetDlg::IDD, GetDesktopWindow() ); 看看 CDataSetDlg 定义。
昨夜无风 2014-06-11
  • 打赏
  • 举报
回复
把B的父窗口设为A就可以了!
daxxxiaoxx 2014-06-11
  • 打赏
  • 举报
回复
TO:schlafenhamster CDataSetDlg* CDataSetDlg::GetInstance(CWnd* pParent/* = NULL*/) { BOOL bCreateResult = FALSE; // Createの結果 // インスタンスが未生成ならばインスタンスを生成 if( m_pCDataSetDlg == NULL ) { try{ m_pCDataSetDlg = new CDataSetDlg( GetDesktopWindow() ); } catch ( CMemoryException* pEx ) { pEx->Delete(); return NULL; } // ウィンドウ生成 bCreateResult = m_pCDataSetDlg->Create( CDataSetDlg::IDD, GetDesktopWindow() ); if(bCreateResult == FALSE) { return NULL; } } return m_pCDataSetDlg; } 这就是创建所谓的桌面对话框。
robertbo 2014-06-10
  • 打赏
  • 举报
回复
设置C的窗口风格为Top 或者 可以在C的OnInitDialog或OnCreate消息里SetWindowPos(&CWnd::wndTopMost , 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
schlafenhamster 2014-06-10
  • 打赏
  • 举报
回复
“点击按钮B弹出桌面对话框C” 桌面 ??

15,979

社区成员

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

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