社区
界面
帖子详情
VC如何让一个弹出非模式窗口始终位于另一个窗口之上,不是顶级窗口
anlun
2011-12-02 11:15:30
VC如何让一个弹出非模式窗口始终位于另一个窗口之上,不是顶级窗口
...全文
756
8
打赏
收藏
VC如何让一个弹出非模式窗口始终位于另一个窗口之上,不是顶级窗口
VC如何让一个弹出非模式窗口始终位于另一个窗口之上,不是顶级窗口
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
向立天
2011-12-28
打赏
举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了
疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面
界面版关于版主结帖工作的具体办法
Eleven
2011-12-02
打赏
举报
回复
SetParent();
Kaile
2011-12-02
打赏
举报
回复
BOOL SetWindowPos( HWND hWnd,
HWND hWndInsertAfter,
int X,
int Y,
int cx,
int cy,
UINT uFlags
);
hWndInsertAfter 设为
HWND_TOPMOST
liujie250079934
2011-12-02
打赏
举报
回复
BOOL SetWindowPos(
const CWnd* pWndInsertAfter,
int x, int y,
int cx, int cy,
UINT nFlags
);
返回值:如果函数成功,则返回非零值;否则返回0。
参数: pWndInsertAfter 标识了在Z轴次序上位于这个CWnd对象之前的CWnd对象。这个参数可以是指向CWnd对象的指针,也可以是指向下列值的指针:
wndBottom 将窗口放在Z轴次序的底部。如果这个CWnd是一个顶层窗口,则窗口将失去它的顶层状态;系统将这个窗口放在其它所有窗口的底部。
wndTop 将窗口放在Z轴次序的顶部。
wndTopMost 将窗口放在所有非顶层窗口的上面。这个窗口将保持它的顶层位置,即使它失去了活动状态。
wndNoTopMost 将窗口重新定位到所有非顶层窗口的顶部(这意味着在所有的顶层窗口之下)。这个标志对那些已经是非顶层窗口的窗口没有作用。
有关这个函数以及这些参数的使用规则参见说明部分。
x 指定了窗口左边的新位置。
y 指定了窗口顶部的新位置。
cx 指定了窗口的新宽度。
cy 指定了窗口的新高度。
nFlags 指定了大小和位置选项。这个参数可以是下列值的组合:
SWP_DRAWFRAME 围绕窗口画出边框(在创建窗口的时候定义)。
SWP_FRAMECHANGED 向窗口发送一条WM_NCCALCSIZE消息,即使窗口的大小不会改变。如果没有指定这个标志,则仅当窗口的大小发生变化时才发送WM_NCCALCSIZE消息。
SWP_HIDEWINDOW 隐藏窗口。
SWP_NOACTIVATE 不激活窗口。如果没有设置这个标志,则窗口将被激活并移动到顶层或非顶层窗口组(依赖于pWndInsertAfter参数的设置)的顶部。
SWP_NOCOPYBITS 废弃这个客户区的内容。如果没有指定这个参数,则客户区的有效内容将被保存,并在窗口的大小或位置改变以后被拷贝回客户区。
SWP_NOMOVE 保持当前的位置(忽略x和y参数)。
SWP_NOOWNERZORDER 不改变拥有者窗口在Z轴次序上的位置。
SWP_NOREDRAW 不重画变化。如果设置了这个标志,则不发生任何种类的变化。这适用于客户区、非客户区(包括标题和滚动条)以及被移动窗口覆盖的父窗口的任何部分。当这个标志被设置的时候,应用程序必须明确地无效或重画要重画的窗口和父窗口的任何部分。
SWP_NOREPOSITION 与SWP_NOOWNERZORDER相同。
SWP_NOSENDCHANGING 防止窗口接收WM_WINDOWPOSCHANGING消息。
SWP_NOSIZE 保持当前的大小(忽略cx和cy参数)。
SWP_NOZORDER 保持当前的次序(忽略pWndInsertAfter)。
SWP_SHOWWINDOW 显示窗口。
说明:
调用这个成员函数以改变子窗口、弹出窗口和顶层窗口的大小、位置和Z轴次序。
窗口在屏幕上按照它们的Z轴次序排序。在Z轴次序上处于顶端的窗口将程序在所有其它窗口的顶部。
子窗口的所有坐标都是客户坐标(相对于父窗口客户区的左上角)。
窗口可以被移动到Z轴次序的顶部,既可以通过将pWndInsertAfter参数设为&wndTopMost,并确保没有设置SWP_NOZORDER标志,也可以通过设置窗口的Z轴次序使它位于所有现存的顶层窗口上方。当一个非顶层窗口被设为顶层窗口时,它拥有的窗口也被设为顶层的。它的拥有者不发生变化。
如果顶层窗口被重新定位到Z轴次序的底部(&wndBottom)或任何非顶层窗口之后,则它将不再是顶层窗口。当顶层窗口被变为非顶层窗口时,它所有的拥有者和它拥有的所有窗口都被变为非顶层窗口。
如果既没有指定SWP_NOACTIVE标志也没有指定SWP_NOZORDER标志(这意味着应用程序要求窗口被同时激活并放入指定的Z轴次序),则pWndInsertAfter参数中指定的值将只在下列环境下适用: · 在pWndInsertAfter参数中既没有指定&wndTopMost也没有指定&wndNoTopMost。
· 这个窗口不是活动窗口。
应用程序不能激活一个非活动窗口但同时又不把它带到Z轴次序的顶部。应用程序可以没有任何限制地改变活动窗口的Z轴次序。
非顶层窗口可能拥有一个顶层窗口,但是反之则不成立。任何被顶层窗口拥有的窗口(例如对话框)都将自己变为顶层窗口,以确保所有被拥有的窗口位于它们的拥有者上方。
在Windows 3.1或更新的版本中,可以将窗口移动到Z轴次序的顶部,并通过设置它们的WS_EX_TOPMOST风格而将之锁定在那里。这种顶层窗口即使在失去活动状态以后也会保持顶层位置。例如,选择WinHelp的Always On Top命令会使帮助窗口变为顶层,并且在你返回应用程序之后它还保持可见。
要创建一个顶层窗口,应在调用SetWindowPos的时候将pWndInsertAfter参数设为&wndTopMost,或者在创建窗口的时候设置WS_EX_TOPMOST风格。
如果Z轴次序中包含了任何具有WS_EX_TOPMOST风格的窗口,则用&wndTopMost移动的窗口将被放到所有非顶层窗口的顶部,但是位于任何顶层窗口的下面。当应用程序激活一个不具有WS_EX_TOPMOST风格的非活动窗口时,该窗口将被移动到所有非顶层窗口的上方,但是位于所有顶层窗口的下方。
如果在调用SetWindowPos的时候pWndInsertAfter参数被设为&wndBottom,并且CWnd是一个顶层窗口,则该窗口失去顶层状态(WS_EX_BOTTOM风格被清除),并且系统将窗口放在Z轴次序的底部。
liujie250079934
2011-12-02
打赏
举报
回复
SetWindowPos();
许文君
2011-12-02
打赏
举报
回复
子窗口
vc
++ 应用源码包_6
压缩包内有两个源码包,
一个
是注册机源程序,另
一个
是解密机的源程序,一套完整的参考实例。
VC
+MapX源码含GPS跟踪演示
VC
3D 利用
VC
编程在界面上实现3D文字 在MFC应用程序中浏览PDF、Word文档文件
vc
dialog 自...
Windows API函数大全
GetSubMenu 取得
一个
弹出
式菜单的句柄,它
位于
菜单中指定的位置 GetSystemMenu 取得指定
窗口
的系统菜单的句柄 HiliteMenuItem 控制
顶级
菜单条目的加亮显示状态 InsertMenu 在菜单的指定位置处插入
一个
菜单条目,...
VC
#.NET+GDI+开发交互式CAD系统
本课程用
VC
#.NET结合GDI+,从无到有开发
一个
功能较完整的小型交互式CAD系统。 作者有交互式CAD系统、动态几何系统开发经验。出版过交互式CAD系统开发方面的图书。 课程先讲准备知识,然后讲整个系统的开发思路和主要...
PT80-NEAT开发指南v1.1
建立
一个
应用程序 ................................................................................................................................ 17 应用程序的关闭 .......................................
vc
++ 应用源码包_1
压缩包内有两个源码包,
一个
是注册机源程序,另
一个
是解密机的源程序,一套完整的参考实例。
VC
+MapX源码含GPS跟踪演示
VC
3D 利用
VC
编程在界面上实现3D文字 在MFC应用程序中浏览PDF、Word文档文件
vc
dialog 自...
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章