使程序显示在桌面最上方 topmost window
2009-08-20 12:54
302 查看
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重新把窗口放在所以非置顶窗口的最前面(即,放在所有置顶窗口的后面)。
如果已经存在一个nontopmost窗口,则该标志无效
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 显示窗口
备注
如果设置pWndInsertAfter &wndTopMost ,且SWP_NOZORDER 不被设置,可以使窗口放在所有置顶窗口的最上方
要创建置顶窗口,除了调用SetWindowPos 设置pWndInsertAfter &wndTopMost,也可在创建窗体时设置WS_EX_TOPMOST 样式
返回值:
如果函数调用成功,返回非零值;否则 返回 0
参数:
pWndInsertAfter
标示Z方向上在本CWnd对象之前的CWnd 对象。本参数可以是指向CWnd对象的指针,或以下值:
wndBottom 把本窗口放在Z方向的最底端。如果这个CWnd对象是最上方窗口,这个窗口就失去其最上方的状态
系统会把此窗口放在所有其他窗口的下面
wndTop 把本窗口放在Z方向上的最上方
wndTopMost 把窗口放在所有其他非置顶窗口的上面。即使窗口无效,依然会维持置顶状态
wndNoTopMost重新把窗口放在所以非置顶窗口的最前面(即,放在所有置顶窗口的后面)。
如果已经存在一个nontopmost窗口,则该标志无效
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 显示窗口
备注
如果设置pWndInsertAfter &wndTopMost ,且SWP_NOZORDER 不被设置,可以使窗口放在所有置顶窗口的最上方
要创建置顶窗口,除了调用SetWindowPos 设置pWndInsertAfter &wndTopMost,也可在创建窗体时设置WS_EX_TOPMOST 样式
相关文章推荐
- Qt Symbian: 如何让自己的程序显示在桌面上方
- 将程序窗口显示在桌面工作区的右下角
- 一款在Gnome桌面中显示Andorid通知的程序
- 如何找回被误删除的“显示桌面”程序
- 对话框程序,点显示桌面按钮,在恢复对话框,多次重复有内存泄露。对话框再弹出会消耗一些内存,是正常现象
- c# winform窗口一直置顶显示在桌面最上方或最底层的方法
- 桌面程序显示位置
- 显示桌面程序
- Qt 程序桌面居中显示的方法
- C# 如何使自己的程序在“显示桌面”时不最小化
- C# 如何使自己的程序在“显示桌面”时不最小化
- 一个模拟"显示桌面.scf"程序的JS小函数
- C# 只开启一个程序,如果第二次打开则自动将第一个程序显示到桌面
- c# winform窗口一直置顶显示在桌面最上方的方法
- 将app变为桌面程序,开机后不再显示原桌面,而是显示我们的app界面
- C# winform窗体在桌面右下角显示(任务栏上方)
- 自己动手打造WinXP风格的Win7显示桌面程序
- adobe air桌面应用程序在前端显示,类似于暴风的总是在桌面的最上方
- windows vbs启动多个应用程序并使程序最小化(显示桌面)