我想知道是否为了将带有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
);
我问是因为在我看来,可能只有一个
HWND
以及x
和y
作为参数的函数。 最佳答案
是的,这是正常的方式,并且窗口将显示WM_WINDOWPOSCHANGING
消息(参数已更改)。还有较旧的 MoveWindow
,但灵活性较差,实际上迫使您设置大小。
要正确保存和恢复窗口大小,您应该分别使用GetWindowPlacement
和SetWindowPlacement
。
关于windows - 用SetWindowPos移动窗口是 'normal way'要做的吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4631706/