生成的程序窗口不总置顶,及时点击或者挪动也不能,为什么呢?

_rock_stone_ 2014-10-30 11:38:09
有两个问题:
1 我查找了下SetWindowPos这个函数,没有发现是这个函数的问题,请教下还可能是什么问题?生成的程序只能在别的窗口后移动。
2 还有一个问题,有一个由鼠标拖动自由生成子窗口的程序,生成的窗口只会在之前生成的窗口之前,挪动后面的窗口也不能让其在前,如何做到点哪个子窗口哪外子窗口就在最前的效果呢?
...全文
477 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
schlafenhamster 2014-11-04
  • 打赏
  • 举报
回复
"Zorder.rar" http://download.csdn.net/detail/schlafenhamster/4916110 "控制窗口 Zorder 的一个程序。演示 窗口拉伸或移动时如何保持 Zorder 不变"
_rock_stone_ 2014-11-04
  • 打赏
  • 举报
回复
引用 7 楼 jacksonfan 的回复:
第二个问题,创建非模态对话框,CreateWindow()


---------------------
是的,我用的就是这个函数来创建窗口的。主要代码如何,效果是拉出窗口,不能调整窗口前后次序,有无方法来点击哪个窗口,哪 个窗口就置前呢?
wnd->Create(0,NULL,WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS,CRect(m_pt1,point),this,m_id+1);//窗口以1为开始
wnd->SetWindowPos(&wndTop,m_pt1.x,m_pt1.y,point.x - m_pt1.x,point.y - m_pt1.y,SWP_NOACTIVATE);
=====
_rock_stone_ 2014-11-04
  • 打赏
  • 举报
回复
引用 5 楼 SiGoYi 的回复:
SetWindowPos(&wndTopMost,0,0,cxScreen,cyScreen,SWP_SHOWWINDOW); wndTopMost是置顶的意思,你不是设置成wndNoTopMost不置顶了吧! 这是我从msdn上看到的,你自己式式吧!
------------------------- 一开始我也想到了,可是搜索了下,没在这个窗口类中使用,并不是因为这个函数使用不当。难道只能因为这一个原因吗?
jacksonfan 2014-10-31
  • 打赏
  • 举报
回复
第二个问题,创建非模态对话框,CreateWindow()
jacksonfan 2014-10-31
  • 打赏
  • 举报
回复
SetWindowPos这个函数 To create a topmost window, call SetWindowPos with the pWndInsertAfter parameter equal to &wndTopMost, or set the WS_EX_TOPMOST style when you create the window.
SiGoYi 2014-10-30
  • 打赏
  • 举报
回复
SetWindowPos(&wndTopMost,0,0,cxScreen,cyScreen,SWP_SHOWWINDOW); wndTopMost是置顶的意思,你不是设置成wndNoTopMost不置顶了吧! 这是我从msdn上看到的,你自己式式吧!
SiGoYi 2014-10-30
  • 打赏
  • 举报
回复
估计就是你的SetWindowPos使用错误,这个api中有一个zorder你可能是设置在最后了,你好好看看msdn吧
_rock_stone_ 2014-10-30
  • 打赏
  • 举报
回复
引用 1 楼 happyparrot 的回复:
好像默认情况就是你想要的效果啊。
不是啊,启动时在最前,被别的窗口一覆盖之后就只能在后面了。
hhhh63 2014-10-30
  • 打赏
  • 举报
回复
子窗口要能获取焦点
快乐鹦鹉 2014-10-30
  • 打赏
  • 举报
回复
好像默认情况就是你想要的效果啊。

15,979

社区成员

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

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