CWnd::MoveWindow与CWnd::SetWindowPos的功能不一样,它们分别用在那些场合呢

DalyQiao 2003-10-09 03:39:15
我在对话框中使用CButton::Create创建了一个按钮,但是不能用SetWindowPos进行移动和进行其它的操作,MSDN中说当iflag为SWP_SHOWWINDOW或SWP_HIDEWINDOW时,使用SetWindowPos没有效果,我没有理解,不过我使用CDialog::Create创建一个窗口时却能够移动和操作,真不明白,MoveWindow就可以用,
我不明白的是,这个函数到底有什么区别?各位指点一下...
...全文
356 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sonyg 2003-11-11
  • 打赏
  • 举报
回复
在任何时候使用SetWindowPos()都是没错的
不论是CWnd 还是CButton,MoveWindow(),如果移动窗口的时候,改变了窗口的大小,会造成窗口刷新失败
DalyQiao 2003-10-09
  • 打赏
  • 举报
回复
wuxfBrave,你让我试那个参数啊

MSDN 对API ::SetWindowPos的解释说了一个限制条件,是英文啊可能我的理解有错,
不过我在调用CButton::Create后,使用CButton::SetWindowPos(&wndPos,....,SWP_SHOWWINDOW)
没有出错提示,经检测调用是成功的,但确实没有移动到我指定的位置,是不是这个函数对WS_CHILD风格的窗口无效?
wuxfBrave 2003-10-09
  • 打赏
  • 举报
回复
SetWindowPos可以完成MoveWindow的功能,也能完成MoveWindow不能完成的功能
MoveWindow只是移动窗口的位置和大小

SetWindowPos还可以设置窗口的Z-ORDER、显示隐藏窗口等等
SWP_SHOWWINDOW或SWP_HIDEWINDOW你的理解有问题,试试这个参数,看看运行效果,
xiaohyy 2003-10-09
  • 打赏
  • 举报
回复
SetWindowPos功能比MoveWindow多些,MoveWindow只是设置窗口位置。。。
Paris_Luo 2003-10-09
  • 打赏
  • 举报
回复
MoveWindow
Changes the position and dimensions of the window

SetWindowPos
Call this member function to change the size, position, and Z-order of child, pop-up, and top-level windows.
kink 2003-10-09
  • 打赏
  • 举报
回复
MoveWindow 是移动窗体位置和改变窗体大小
SetWindowPos是改变窗体在z轴的顺序,就是使窗体置前还是置后
hoffen 2003-10-09
  • 打赏
  • 举报
回复
CButton::SetWindowPos
CWnd::MoveWindow
这样就好了

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧