CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  界面

MoveWindow的成功调用有什么条件?总是不能移动窗口?

楼主forflying(为...而飞)2006-03-01 16:49:18 在 VC/MFC / 界面 提问

我用mfc创建一个基于对话框的应用程序,全部默认属性。不做其他任何修改,仅仅在OnInitDialog()函数里面加了一句:   MoveWindow(0,0,400,300),然后运行,发现对话框大小变了,可是对话框的位置仍在正中间,无论怎么改Movewindow的参数,位置都没有变化。  
   
  后来,我把对话框资源的MoreStyle属性里面的“Center”勾上,就可以移动了,反之,去掉就不能成功。  
   
  请问,这是何缘故?  
   
  谢谢了! 问题点数:50、回复次数:5Top

1 楼ydfivy(我就是一送外卖的)回复于 2006-03-01 17:36:06 得分 0

属性Center被选中,那对话框的默认显示位置就是屏幕正中.Top

2 楼yang79tao()回复于 2006-03-01 20:15:12 得分 0

OnInitDialog时,窗口未显示,调用MoveWindow后,窗口肯定会被移动的,但看不到移动的效果,因为消息循环中的WM_PAINT消息(MoveWindow产生的)还未来得及被提取和执行,对于对话框,在第一次显示的时候,系统还会自动调用一次MoveWindow或CenterWindow,所以第一次的MoveWindow效果就在还没有被显现的情况下被第二次权覆盖了。Top

3 楼syy64(太平洋)回复于 2006-03-02 07:56:27 得分 0

应该放在OnSize函数里。Top

4 楼forflying(为...而飞)回复于 2006-03-03 13:47:15 得分 0

谢谢各位!正如yang79tao()   所说,我做过测试,发现的确MoveWindow生效过,但是被后来的函数给重新绘制了,所以表面上看就像没有移动过窗口。所以直接把MoveWindow放在OnInitDialog里面是不合适的。  
   
  我想再问一下,哪里可以看到OnInitDialog启动对话框过程中调用了哪些函数?谢谢!  
   
  Top

5 楼forflying(为...而飞)回复于 2006-03-03 13:56:14 得分 0

另外,如果我把OnInitDialog里面的MoveWindow换成SetWindowPos,好像就不会受后面函数的影响,直接就能看到移动后的效果了。请问,这个又有什么区别?Top

相关问题

  • SetWindowLong怎么调用不成功?
  • 怎样才能调用StgCreateDocfile成功?
  • 水晶报表 ASP调用成功
  • LogonUser总是调用不成功 ?
  • 新手,DLL调用不能成功!
  • C#调用BCB写的dll不成功
  • 关于ado调用SQL存储过程怎样判断是否调用成功??
  • COM调用成功,DCOM调用失败,请大虾指点迷津
  • C# 调用 API调用成功但是结果不对,请高手指教
  • C# 调用 API调用成功但是结果不对,请高手指教

关键词

  • 函数
  • 移动
  • 属性
  • 效果
  • movewindow
  • 调用
  • 对话框
  • oninitdialog
  • 谢谢
  • 显示

得分解答快速导航

  • 帖主:forflying

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo