我正在尝试“扩展”现有的应用程序。
The goal就是在不更改应用程序代码的情况下使现有应用程序变得更大。
一个约束拉伸的应用程序不会“注意到”它,因此,如果应用程序查询创建的窗口大小,它将看到原始大小,而不是调整后的大小。
我设法使用调整窗口大小SetWindowsHookEx
:
HHOOK hMessHook = SetWindowsHookEx(WH_CBT,CBTProc, hInst, 0);
And:
LRESULT CALLBACK CBTProc( __in int nCode,
__in WPARAM wParam,
__in LPARAM lParam)
{
if (HCBT_CREATEWND == nCode)
{
CBT_CREATEWND *WndData = (CBT_CREATEWND*) lParam;
// Calculate newWidth and newHeight values...
WndData->lpcs->cx = newWidth;
WndData->lpcs->cy = newHeight;
}
CallNextHookEx(hMessHook, nCode, wParam, lParam);
}
我面临的问题是我无法使拉伸的应用程序看到原始尺寸。
例如,如果创建 .NET 表单:
public class SimpleForm : Form
{
public SimpleForm()
{
Width = 100;
Height = 200;
}
}
然后查询尺寸:
void QuerySize(SimpleForm form)
{
int width = form.Width;
int height = form.Height;
}
我想要width
and height
be 100
and 200
而不是调整大小的值。我无法找到查询现有窗口大小的正确钩子。
挂钩窗口大小查询的正确方法是什么?