让一个窗口在另外一个窗口之前

npuhuxl 2012-12-17 03:39:27
请问 不使用SetParent的方式,如何能一个窗口保持在另外一个窗口之前?
比如有两个窗口A,窗口B。
让窗口A保持在窗口B之前。
...全文
275 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2013-04-03
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
npuhuxl 2012-12-18
  • 打赏
  • 举报
回复
谢谢,我试试这个方法
gfm688 2012-12-17
  • 打赏
  • 举报
回复

void CBDlg::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos) 
{
  lpwndpos->hwndInsertAfter = m_pADlg->GetSafeHwnd();
  CDialog::OnWindowPosChanging(lpwndpos);
}
这样可行
npuhuxl 2012-12-17
  • 打赏
  • 举报
回复
谢谢,这个方法的确可以解决遮挡问题,但是B窗口上没被遮挡的按钮永远就不能被点击了……
快乐鹦鹉 2012-12-17
  • 打赏
  • 举报
回复
一个办法是响应B窗口的OnActive事件,然后在这里设置A窗口的SetWindowPos,始终在B之上 void CBDlg::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized) { CDialog::OnActivate(nState, pWndOther, bMinimized); m_pADlg->SetWindowPos(this,0,0,0,0,SWP_NOSIZE |SWP_NOMOVE); } 在B对话框中增加A对话框类型成员变量,然后在创建这两个窗口时,将A对话框指针传递给B。这样能达到效果。
npuhuxl 2012-12-17
  • 打赏
  • 举报
回复
除掉让A置顶,没有其他方法了马?thx
快乐鹦鹉 2012-12-17
  • 打赏
  • 举报
回复
会被遮挡住。你可以将A对话框置顶,这样永远在最前面了
npuhuxl 2012-12-17
  • 打赏
  • 举报
回复
不希望被A遮挡的部分可见。 仍然保持让A在B前面
npuhuxl 2012-12-17
  • 打赏
  • 举报
回复
不希望,还让A在B前面
快乐鹦鹉 2012-12-17
  • 打赏
  • 举报
回复
窗口B激活时,你希望被A遮挡的部分能看见吗?
npuhuxl 2012-12-17
  • 打赏
  • 举报
回复
窗口B比窗口A大,窗口B激活时,会不会遮挡住窗口A?
快乐鹦鹉 2012-12-17
  • 打赏
  • 举报
回复
SetWindowPos可以指定窗口的Z-Order A.SetWindowPos(B,....)

15,980

社区成员

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

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