SetWindowPos设置窗口的Z轴次序

MFC中的Z轴次序是就像数学三维坐标轴中的Z轴,表示x方向,y方向之外的第三个方向;

例如:我们利用快捷键“Ctrl+e”打开文件管理器,每按一次快捷键,则创建一个新的窗口;我们打开三个窗口,我们点击哪个窗口,则该窗口就呈现在最前面;这种效果就是设置窗口的Z轴次序可以达到。

这里写图片描述

我们可以利用SetWindowPos进行设置,其函数声明如下:

BOOL SetWindowPos(          
    HWND hWnd,
    HWND hWndInsertAfter,
    int X,
    int Y,
    int cx,
    int cy,
    UINT uFlags
);

主要参数:

  • hWnd
    窗口句柄;
  • hWndInsertAfter
    设置窗口Z轴次序的特殊句柄,只能是以下几个值:
    • HWND_BOTTOM
      Z轴方向的最底端
    • HWND_NOTOPMOST
      介于最底端和非最顶端之间
    • HWND_TOP
      在所有窗口的最前端
    • HWND_TOPMOST
      位于最前端的窗口之下
  • uFlags
    • SWP_NOACTIVATE
      激活该窗口
    • SWP_NOMOVE
      保持当前窗口位置,忽略X and Y 参数
    • SWP_NOSIZE
      保持大小不变,忽略Cx 和Cy参数
    • SWP_NOZORDER
      保持当前窗口的Z序列,忽略hWndInsertAfter参数
    • SWP_SHOWWINDOW
      显示窗口

SetWindowPos可以设置窗口大小,位置,Z轴次序,其函数功能比较强大,这里主要介绍Z轴的设置;更多参数详细信息可以参考MSDN介绍;

原文地址:https://www.cnblogs.com/jinxiang1224/p/8468291.html