MoveWindow问题,不知道除了我之外,还有没有人碰到过

时间:2021-05-27 19:17:45
在创建窗口时,使用了MoveWindow来控制窗口的位置和宽高,但是实际运行后却发现窗口的宽并没有按照我设定的值去变化。debug后发现,是在执行过MoveWindow后,莫名其妙的宽就变掉了。
比如,我设置的宽和高都是614,但是实际运行后,窗口的宽变成了800,高没有变。
请教各位,是什么原因导致了这种情况呢?

10 个解决方案

#1


先用:
函数原型:BOOL AdjustWindowRect(LPRECT lpRect ,DWORD dwStyle,BOOL bMENU);

#2


不好意思,能不能再详细点。
还有我这个窗口就是主窗口,用MoveWindow只是为了能在程序初次启动时,让窗口可以按照我设置的值在屏幕上显示出来,而问题也就在于现在的显示结果与我的设置是不同的。

#3


你在哪里调用 MoveWindow的?

#4


CRect  rc;
rc.SetRect(0,0,614,614);
AdjustWindowRect(&rct ,0,0);
MoveWindow(&rc);
CenterWindow();

#5


是在OnInitialDialog 里调用的MoveWindow?

#6


没错,是在OnInitialDialog 里调用的MoveWindow

#7


引用 4 楼 schlafenhamster 的回复:
CRect  rc;
rc.SetRect(0,0,614,614);
AdjustWindowRect(&rct ,0,0);
MoveWindow(&rc);
CenterWindow();

问你在哪里调用,不是你怎么调用......
在OnInitDialog中调用MoveWindow没有效果。

#8


感谢各位大神的回答,问题已经解决了。

#9


怎么解决的?

#10


请问楼主怎么解决的?我也遇到个类似的问题,在公司所有的测试机上Movewindow都好好的,到了客户那边妥妥的每次都出错

#1


先用:
函数原型:BOOL AdjustWindowRect(LPRECT lpRect ,DWORD dwStyle,BOOL bMENU);

#2


不好意思,能不能再详细点。
还有我这个窗口就是主窗口,用MoveWindow只是为了能在程序初次启动时,让窗口可以按照我设置的值在屏幕上显示出来,而问题也就在于现在的显示结果与我的设置是不同的。

#3


你在哪里调用 MoveWindow的?

#4


CRect  rc;
rc.SetRect(0,0,614,614);
AdjustWindowRect(&rct ,0,0);
MoveWindow(&rc);
CenterWindow();

#5


是在OnInitialDialog 里调用的MoveWindow?

#6


没错,是在OnInitialDialog 里调用的MoveWindow

#7


引用 4 楼 schlafenhamster 的回复:
CRect  rc;
rc.SetRect(0,0,614,614);
AdjustWindowRect(&rct ,0,0);
MoveWindow(&rc);
CenterWindow();

问你在哪里调用,不是你怎么调用......
在OnInitDialog中调用MoveWindow没有效果。

#8


感谢各位大神的回答,问题已经解决了。

#9


怎么解决的?

#10


请问楼主怎么解决的?我也遇到个类似的问题,在公司所有的测试机上Movewindow都好好的,到了客户那边妥妥的每次都出错