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

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

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

【问题讨论】:

    标签: c++ visual-studio-2008 windows-xp directx window-resize


    【解决方案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 } }
    猜你喜欢
    • 2019-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-09
    • 2011-08-20
    • 1970-01-01
    • 2012-10-29
    • 1970-01-01
    相关资源
    最近更新 更多