创建特定窗口后如何调整其大小?

Posted

技术标签:

【中文标题】创建特定窗口后如何调整其大小?【英文标题】:How can i resize a specific window after it's created? 【发布时间】:2011-05-30 05:37:55 【问题描述】:

我想在创建后调整某些游戏窗口 (DirectX) 的大小,游戏窗口允许通过鼠标从边缘调整大小。但我想自动执行此操作,因为通过鼠标很难做到这一点:光标在边缘不可见,我必须首先使窗口失焦,才能通过单击边缘来调整大小。需要说明的是:我没有这个游戏的资源,所以我必须制作自己的程序来做到这一点。

如何做到这一点?或者更好:是否已经有现有的程序来做这些事情?

【问题讨论】:

【参考方案1】:

可能会有问题,但最好先尝试简单的事情。

正如您用 C++ 标记的帖子,我想您正在寻找 WinAPI 解决方案。试试这个:


int width = 640;
int height = 480;

HWND handle = ::FindWindow(NULL, _T("Window title"));

::SetWindowPos(handle, 0, 0, 0, width, height, SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOZORDER);

【讨论】:

完美运行!顺便说一句,那些 :: 标记是什么?没有它们也可以工作。 它们用于在本地定义的符号和全局符号之间进行选择。例如,如果您有一个类,其方法名称与“FindWindow”完全相同,则没有其他方法可以调用 WinAPI 函数:class MyClass void FindWindow() blah-blah void func1() FindWindow() <-- call local one void func2() ::FindWindow() <-- calls WinAPI

以上是关于创建特定窗口后如何调整其大小?的主要内容,如果未能解决你的问题,请参考以下文章

调整窗口大小后无法正确检索鼠标坐标

如何创建具有多个显示三角形的调整大小窗口?

调整大小时创建自定义窗口边框边缘消失

阻止 ListBox 使用内容而不是窗口来调整大小

响应式网页设计:“如何使用 CSS 根据浏览器窗口大小调整背景图像的大小”?

如何使用 C# 为 UIAutomation 目的调整 UIA 窗口的大小?