窗体有三个最基本的属性:位置,大小,Z-Order, Windows 对于改变窗体位置和大小这两个更常用提供了更简单的函数.

(一)改变窗体大小和位置

       BOOL MoveWindow(HWND hWnd, int x, int y, int nWidth, int nHeight, BOOL bRepaint)

        改变指定窗体的起始位置以及窗体大小,最后一个参数是改变是否重绘窗体

        以下代码演示了将窗体置桌面客户区中间,以及将控件置于窗体客户区中间并放大一倍

  

UINT nSrnWidth    = GetSystemMetrics(SM_CXFULLSCREEN);
UINT nSrnHeight    = GetSystemMetrics(SM_CYFULLSCREEN);

RECT rtWnd;
GetWindowRect(hWnd, &rtWnd);
UINT nWndWidth    = (rtWnd.right - rtWnd.left);
UINT nWndHeight = (rtWnd.bottom - rtWnd.top);
MoveWindow(hWnd, (nSrnWidth - nWndWidth) / 2, (nSrnHeight - nWndHeight) / 2, nWndWidth, nWndHeight, TRUE);

HWND hBtnMove = GetDlgItem(hWnd, wParam);
UINT nBtnWidth    = 200;
UINT nBtnHeight = 100;
MoveWindow(hBtnMove, (nWndWidth - nBtnWidth) / 2, (nWndHeight - nBtnHeight) / 2, nBtnWidth, nBtnHeight, TRUE);

相关文章: