我有一些我无法修改的应用程序(无源代码),它们被硬编码为0,0。通常这不是一个问题,但是一个新的项目(亭)已经出现,我需要在这些应用程序的外部绘制一个边界。我正在寻找一种方法来改变显示范围:是否可以修改显示器的原点? (win32)
X: 0 to 1200
Y: 0 to 900
喜欢的东西:
X: -100 to 1100
Y: -100 to 800
我见过一对夫妇的功能,像在MSDN上SetViewportExtEx,SetWorldTransform但是这符合需要的,如果我正确理解它们并不会对系统进行全面更改。它们仅适用于当前进程。
我使用C++进行编程,但是如果在注册表/控制面板/ etc中有设置也可以工作。
以前有没有其他人做过这样的事情?
编辑1:窗口位置使用“的setparent”
的是硬编码到0,0
你不能使用全局钩子或其他东西注入一个提到的函数的调用吗? – erikkallen 2011-03-01 00:02:21
您是否认为更改会立即生效,或者如果在确实说出SetWorldTransform调用之前应用程序已开始绘制,会出现计时问题? – 2011-03-01 00:06:47
我认为只有显示驱动程序可以做到这一点。有一个函数来获取每个监视器的坐标,但没有设置它们。请参阅http://msdn.microsoft.com/en-us/library/dd145066.aspx – 2011-03-01 02:27:27