gpt4 book ai didi

windows - 用SetWindowPos 'normal way' 移动一个窗口是做什么的?

转载 作者:可可西里 更新时间:2023-11-01 09:56:42 28 4
gpt4 key购买 nike

我想知道,为了将带有 Win32 API 的 (ms-windows-) 窗口向右移动 20 像素并向下移动 40 像素,是否可以执行以下操作函数调用将是如何做到的:

SetWindowPos(
/* hWnd */ hChildDlg2,
/* hWndInsertAfter */ (HWND) -1,
/* X */ 20,
/* Y */ 40,
/* cx */ -1,
/* cy */ -1,
/* uFlags */ SWP_NOSIZE | // Ignore cx, cy
SWP_NOZORDER // and hWndInsertAfter
);

我问是因为在我看来可能有一个函数只将 HWNDxy 作为参数。

最佳答案

是的,差不多就是这样完成的。您应该更喜欢使用 SetWindowPos()因为它可以让您对窗口的移动/调整大小有相当大的控制权。

我通常这样使用它(我写的一个小框架的一部分):

// Window member function
void Window::Move(int x, int y)
{
if(hwnd != 0)
{
::SetWindowPos(hwnd, 0, x, y, 0, 0,
SWP_NOZORDER | SWP_NOSIZE | SWP_NOACTIVATE);
}
}

还有一个 MoveWindow()做几乎相同的事情的功能。使用可用的 SetWindowPos() 函数,it's now more of a convenience function than anything else .

关于windows - 用SetWindowPos 'normal way' 移动一个窗口是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4631706/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com