MoveWindow与SetWindowPos的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MoveWindow与SetWindowPos的区别相关的知识,希望对你有一定的参考价值。

移动对话框窗口时,我想把窗口移动到屏幕的左上角,MoveWindow的实现为:
CRect cl;
GetClientRect(&cl);
ClientToScreen(&cl);
MoveWindow(cl);
SetWindowPos的实现为:
CRect client;
GetClientRect(&client);
SetWindowPos(&wndTopMost,0,0,client.Width(),client.Height(),SWP_SHOWWINDOW);
但结果MoveWindow不能移动到准确位置,而SetWindowPos则可以,不知道为什么?

参考技术A SetWindowPos可以完成MoveWindow的功能,也能完成MoveWindow不能完成的功能
MoveWindow只是移动窗口的位置和大小

SetWindowPos还可以设置窗口的Z-ORDER、显示隐藏窗口等等

以上是关于MoveWindow与SetWindowPos的区别的主要内容,如果未能解决你的问题,请参考以下文章

MFC中改变窗口大小MoveWindow...

对话框可视化 C++

在mfc中控件如CButton,CStatic创建之后能改变大小或者移动位置吗

vb 通过句柄将外部程序 设为本程序的子窗体 并 改变其窗体大小

MFC如何改变窗口大小??

问题解决——限制窗体的最小尺寸