0

控件的大小和位置由 windows (dwm) 修改。我需要一种方法来获得 x 和 y 的精确缩放来平衡这一点。

我不能使用清单,因为我正在向.exe (3ds Max)编写插件。我无法更改 3dsMax 的清单(我不是 Autodesk。我无法调用setprocessdpiawareness(),因为我是另一个插件(dll)exe,我会杀死我的父进程的布局。

该解决方案应该在 Windows 7、8、10 中运行。所以我不能使用在 10 或 8.1 中引入的调用

我已经尝试过:

LogicalToPhysicalPoint(0,& p1);

PhysicalToLogicalPoint(0, &p2);

这不会改变任何东西(积分不变)。我确实使用老式 C++ 和通用控件(子类化)。没有 WPF,再次因为我不能使用 WPF,因为它不能与我的父 exe 一起运行。

HWND hw = CreateWindowEx(0, L"STATIC", L"thumbnails",
        WS_CHILD | WS_VISIBLE | SS_WHITEFRAME | SS_BITMAP ,
        9*2, 64*2, 90*2, 46*2,  hParentDialog, 0, 0, 0);

将魔术“2*”添加到控件的大小和位置后,我确实得到了我想要的位置。但这是一个仅适用于我当前使用当前显示器的机器的 hack。

我想用 dwm 应用的乘数替换“2”。

4

0 回答 0