MFC设置窗口在Z轴上的位置

函数原型:

cpp 复制代码
BOOL CWnd::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_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轴位置为最顶层:

cpp 复制代码
SetWindowPos(&wndTop, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
相关推荐
NiceCloud喜云8 小时前
Opus 4.8 的 Effort Control 怎么选:Low 到 Max 五档策略
android·java·大数据·前端·c++·python·spring
cjhbachelor8 小时前
c++继承
c++
肩上风骋8 小时前
C++14特性
开发语言·c++·c++14特性
QiLinkOS11 小时前
【从实验室到商业战场:发明专利如何重塑科技与企业的共生生态】
大数据·c语言·数据结构·c++·人工智能·单片机·算法
Irissgwe12 小时前
c++11(lambda表达式与包装器、线程库)
c++·c++11·lambda表达式·线程库·包装器·互斥量库·条件变量库
Peter·Pan爱编程12 小时前
14. Lambda 表达式:随手可写的函数对象
c++·算法·ai编程
不想写代码的星星13 小时前
从分支预测角度看 C++:为什么你的热循环慢得离谱?
c++
郝学胜-神的一滴14 小时前
Qt 高级开发 018:复刻经典登录界面布局与窗口美化全解析
开发语言·c++·qt·程序人生·用户界面
郝亚军14 小时前
IEEE 754 单精度浮点的SEM表示
开发语言·c++·算法
Yyyyyy~15 小时前
【C++】数组篇
开发语言·c++