Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 挂钩Win32 windows创建/调整大小/查询大小_C++_C_Winapi_Hook_Setwindowshookex - Fatal编程技术网

C++ 挂钩Win32 windows创建/调整大小/查询大小

C++ 挂钩Win32 windows创建/调整大小/查询大小,c++,c,winapi,hook,setwindowshookex,C++,C,Winapi,Hook,Setwindowshookex,我正在尝试“扩展”现有应用程序 目标是使现有应用程序变得更大,而不更改该应用程序的代码。 共约束是指拉伸的应用程序不会“注意”它,因此如果应用程序查询创建的窗口大小,它将看到原始大小,而不是大小调整后的大小 我使用SetWindowsHookEx调整了窗口的大小: 以及: 我面临的问题是,我无法使拉伸应用程序看到原始大小 例如,如果创建了.NET表单: public class SimpleForm : Form { public SimpleForm() { W

我正在尝试“扩展”现有应用程序

目标是使现有应用程序变得更大,而不更改该应用程序的代码。
共约束是指拉伸的应用程序不会“注意”它,因此如果应用程序查询创建的窗口大小,它将看到原始大小,而不是大小调整后的大小

我使用
SetWindowsHookEx
调整了窗口的大小:

以及:

我面临的问题是,我无法使拉伸应用程序看到原始大小

例如,如果创建了.NET表单:

public class SimpleForm : Form
{
    public SimpleForm()
    {
        Width = 100;
        Height = 200;
    }
}
然后查询尺寸:

void QuerySize(SimpleForm form)
{
   int width = form.Width;
   int height = form.Height;
}
我希望
width
height
100
200
而不是大小调整后的值。我找不到查询现有窗口大小的正确钩子


什么是钩住窗口大小查询的正确方法?

不幸的是,窗口大小的查询不是由消息处理的——它们是直接的API调用,例如——因此它们不能被标准的Windows钩子拦截。您可能需要查看,它允许您钩住任意Win32函数。(您可以找到有关迂回路线的教程)

public class SimpleForm : Form
{
    public SimpleForm()
    {
        Width = 100;
        Height = 200;
    }
}
void QuerySize(SimpleForm form)
{
   int width = form.Width;
   int height = form.Height;
}