我有许多无法修改的应用程序(无源代码),它们被硬编码为在 0,0 处绘制。通常这不是问题,但是出现了一个新项目(kiosk),我需要在这些应用程序的外部画一个边界。我正在寻找一种方法来更改显示范围:
X: 0 to 1200
Y: 0 to 900
类似于:
X: -100 to 1100
Y: -100 to 800
我在 MSDN 上看到了几个函数,如 SetViewportExtEx、SetWorldTransform,它们符合需要,但是如果我正确理解它们,它们就不会在系统范围内进行更改。它们仅适用于当前进程。
我正在用 C++ 编程,但如果注册表/控制面板/等中有设置也可以。
有没有人以前做过这样的事情?
编辑 1:窗口位置硬编码为 0,0
最佳答案
这可能有点矫枉过正,但如果您真的想完全控制它,您始终可以使用 API Hook 来拦截窗口创建,方法是在目标进程中 Hook CreateWindow、CreateWindowEx 并在将控制权传回之前更改 X Y 坐标到系统。
流行的 API Hook 库包括:Microsoft Detours , Madshi's madCodeHook ,以及免费的开源 EasyHook .
关于c++ - 是否可以修改显示的原点? (win32),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5149044/