我想知道是否为了将带有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以及xy作为参数的函数。

最佳答案

是的,这是正常的方式,并且窗口将显示WM_WINDOWPOSCHANGING消息(参数已更改)。还有较旧的 MoveWindow ,但灵活性较差,实际上迫使您设置大小。

要正确保存和恢复窗口大小,您应该分别使用GetWindowPlacementSetWindowPlacement

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

10-14 16:55
查看更多