下面是一个非常古老的功能,曾在众多的计算机上工作,从未见过错误,但现在这款笔记本电脑遇到了问题。据测试人员说,“似乎没事,直到我重新启动,没有插入另一台监视器。”看起来Windows 10在某些情况下会缩放对话内容,使实际尺寸与设计尺寸不同。在笔记本电脑上放大对话框的SetWindowPos
void ResizeComponent::SetWidth(int width /*= DEF_WIDTH*/)
{
CRect rect;
this->GetWindowRect(rect);
this->SetWindowPos(NULL, 0,0, width, rect.Height(), /*resize only*/SWP_NOZORDER|SWP_NOMOVE);
}
好,使用信息:
const static int WIDTH_PANEL4 = 585;
SetWidth(WIDTH_PANEL4);
据该笔记本电脑的屏幕截图,在一个示例中,窗口581宽,当我在开发计算机上运行它,它也是581宽。但是:笔记本电脑对话框放大了,所以581不再是正确的大小。
我不知道如何正确处理这种情况。
当你说*“581不再是正确的尺寸”时,我不太明白问题(对不起)*,预期的尺寸是多少? –
正确的大小应该是585(或581;不知何故4个像素得到咀嚼),这是我的电脑上的坐标。但是,因为Windows以某种方式扩展对话框,所以显然需要在另一台计算机上更宽。设置为585时,某些对话框控件会被切断。 –
因此,在笔记本电脑中,您获得的尺寸不是585(或581),但您希望它是585? –