永发信息网

用MoveWindow设置窗口大小是放在OnInitialUpdate()里吗

答案:3  悬赏:20  手机版
解决时间 2021-03-08 15:26
  • 提问者网友:世勋超人
  • 2021-03-08 04:59
换了好几个地方试了,都是只改变位置,没改变大小
最佳答案
  • 五星知识达人网友:duile
  • 2021-03-08 05:51
这个函数应该放在CFrameView里,实在没有合适的答案,只能自己回答了,唉,浪费功夫
全部回答
  • 1楼网友:山河有幸埋战骨
  • 2021-03-08 08:28
不能使用RecalcLayout的,RecalcLayout就是告诉Frame要重新调整子窗口(视图、工具栏、状态栏等)在客户区中的位置,且撑满客户区。 后面的ResizeParentToFit也没有意义的。 楼主对这两个函数似乎没搞明白,当程序出现了未知情况,就需要仔细了解自己所使用的函数,尤其是陌生的函数。一般都是到MSDN中去查阅的。当然,实际这两个函数没什么更深入的东西可以挖掘,就是应该要避免RecalcLayout。 然后,去掉了RecalcLayout后,发现视图还是会撑满整个客户区。可以根据这个情况猜测出,会不会后面MFC框架又调用了RecalcLayout呢,如果是的话,那么可以肯定在OnInitialUpdate中改变视图大小是没有意义的。 怎么调试,才能确定在OnInitialUpdate后是否调用了RecalcLayout呢?这里说一下我使用的一个技巧: 在OnInitialUpdate中,第一行输入: TRACE(_T("Entering View::OnInitialUpdate\n")); 然后切换到Frame中,重载RecalcLayout函数,在第一行也输入:
  • 2楼网友:猎心人
  • 2021-03-08 06:58
放在这个函数的最后 后面的几行代码可能改变了大小
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯