SetWindowPos //设置窗口显示z次序位置 //函数原型: WINUSERAPI BOOL WINAPI SetWindowPos( HWND hWnd, //窗口句柄 HWND hWndInsertAfter,//窗口显示位置,见下表 int X, //x坐标 int Y, //y坐标 int cx, //宽度 int cy, //高度 UINT uFlags //窗口尺寸和定位的标志,见下表 ); //参数表1:hWndInsertAfter 有下列值 1。HWND_BOTTOM: //值为1, 将窗口置于Z序的底部。 2。HWND_NOTOPMOST: //值为-2,将窗口置于所有非顶层窗口之上(即在所有顶层窗口之后)。 3。HWND_TOP: //值为0, 将窗口置于Z序的顶部。 4。HWND_TOPMOST: //值为-1,将窗口置于所有非顶层窗口之上。即使窗口未被激活窗口也将保持顶级位置。 //参数表2:uFlags SWP_ASYNCWINDOWPOS: //如果调用进程不拥有窗口,系统会向拥有窗口的线程发出需求。 SWP_DEFERERASE; //防止产生WM_SYSNCPAINT消息 SWP_DRAWFRAME: //在窗口周围画个边框(定义在窗口类中描述) SWP_FRAMECHANGED: //给窗口发送WM_NCCALCSIZE消息,即使窗口尺寸没改变也发送 SWP_HIDEWINDOW: //隐藏窗口 SWP_NOACTIVATE: //不激活窗口 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: //维持当前Z序 SWP_SHOWWINDOW: //显示窗口 返回值: 成功返回非0,失败返回0,获取错误用GetLastError(); win32 实例: HWND hToolBar = GetDlgItem(m_hWnd, IDC_TOOLBAR1); //获取工具栏句柄 if (SendMessage(hToolBar, TB_GETSTATE, ID_BTN_TOP, 0)&TBSTATE_CHECKED)//获取工具栏按钮的状态 SetWindowPos(m_hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);//窗口置顶 else SetWindowPos(m_hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);//取消置顶 break; MFC 原型 BOOL SetWindowPos(const CWnd* pWndInsertAfter, int x, int y, int cx, int cy,UINT nFlags); 示例: int cx = GetSystemMetrics(SM_CXSCREEN); int cy = GetSystemMetrics(SM_CYSCREEN); int dx = 600; int dy = 400; SetWindowPos(&wndBottom,cx-dx,cy-dy,dx,dy,SWP_NOACTIVATE); //设置广告窗口浮动于右下角 c# 用法 [DllImport("user32.dll", EntryPoint = "SetWindowPos")] static extern bool SetWindowPos( IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags ); static readonly IntPtr HWND_TOPMOST = new IntPtr(-1); static readonly IntPtr HWND_NOTOPMOST = new IntPtr(-2); static readonly IntPtr HWND_TOP = new IntPtr(0); const UInt32 SWP_NOSIZE = 0x0001; const UInt32 SWP_NOMOVE = 0x0002; const UInt32 SWP_NOZORDER = 0x0004; const UInt32 SWP_NOREDRAW = 0x0008; const UInt32 SWP_NOACTIVATE = 0x0010; const UInt32 SWP_FRAMECHANGED = 0x0020; const UInt32 SWP_SHOWWINDOW = 0x0040; const UInt32 SWP_HIDEWINDOW = 0x0080; const UInt32 SWP_NOCOPYBITS = 0x0100; const UInt32 SWP_NOOWNERZORDER = 0x0200; const UInt32 SWP_NOSENDCHANGING = 0x0400; const UInt32 TOPMOST_FLAGS = SWP_NOMOVE | SWP_NOSIZE;
签名:GreenLeaf1976
今天的文章setwindowpos用法_setwindowflags分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/50054.html