MoveWindow与SetWindowPos的异同

来源:互联网 发布:制作图文的软件 编辑:程序博客网 时间:2024/05/18 03:51

MoveWindow和SetWindosPos的异同

 

1.原型

<strong>BOOL MoveWindow(   HWND</strong> <em><a target=_blank class="synParam" style="color: rgb(51, 102, 153);">hWnd</a></em><strong>,   int</strong> <em><a target=_blank class="synParam" style="color: rgb(51, 102, 153);">X</a></em><strong>,   int</strong> <em><a target=_blank class="synParam" style="color: rgb(51, 102, 153);">Y</a></em><strong>,   int</strong> <em><a target=_blank class="synParam" style="color: rgb(51, 102, 153);">nWidth</a></em><strong>,   int</strong> <em><a target=_blank class="synParam" style="color: rgb(51, 102, 153);">nHeight</a></em><strong>,   BOOL</strong> <em><a target=_blank class="synParam" style="color: rgb(51, 102, 153);">bRepaint</a> </em><strong>); BOOL SetWindowPos(   HWND</strong> <em><a target=_blank class="synParam" style="color: rgb(51, 102, 153);">hWnd</a></em><strong>,   HWND</strong> <em><a target=_blank class="synParam" style="color: rgb(51, 102, 153);">hWndInsertAfter</a></em><strong>,   int</strong> <em><a target=_blank class="synParam" style="color: rgb(51, 102, 153);">X</a></em><strong>,   int</strong> <em><a target=_blank class="synParam" style="color: rgb(51, 102, 153);">Y</a></em><strong>,   int</strong> <em><a target=_blank class="synParam" style="color: rgb(51, 102, 153);">cx</a></em><strong>,   int</strong> <em><a target=_blank class="synParam" style="color: rgb(51, 102, 153);">cy</a></em><strong>,   UINT</strong> <em><a target=_blank class="synParam" style="color: rgb(51, 102, 153);">uFlags</a> </em><strong>);</strong> 

2.相同功能:两个API都可以移动窗口位置和改变窗口大小

但是如果MoveWindow中的bRepaint参数为FALSE,则父窗口不会被重绘而SetWindowPos则会重绘

3.不同之处

MoveWindow只能移动窗口和改变大小但不能改变窗口的Z序;

SetWindowPos则可以改变窗口Z序、窗口大小、窗口位置、设置是否窗口是否激活、是否显示和隐藏、重新计算客户区等(功能很强大哦);

另外就是如果需要一次性移动多个窗口,则可以用BeginDeferWindowPos/DeferWindowPos/EndDeferWindowPos实现。

0 0
原创粉丝点击