Windows對話框在屏幕居中顯示

Windows對話框在屏幕居中顯示

對話框(DIALOG)模板可以設定顯示位置,但因屏幕大小不一,總想讓對話框在屏幕居中顯示.

  1. 獲取窗口的矩形區域GetWindowRect(),計算窗口的寬和高
  2. 獲取屏幕寬和高GetSystemMetrics()
  3. 重新設置窗口位置

下面給出C源代碼便於移值到其它工程

bool CentreWindow(HWND hWnd)

{

RECT rect;

int width,height;

int x,y;

if(IsWindow(hWnd) == false)

return false;

::GetWindowRect(hWnd,&rect); // 獲取窗口的

width  = rect.right – rect.left; // 計算窗口寬度

height = rect.bottom – rect.top; // 計算窗口高度

x = GetSystemMetrics(SM_CXSCREEN)/2-width/2;// 計算窗口居中X

y = GetSystemMetrics(SM_CYSCREEN)/2-height/2;// 計算窗口居中Y

SetWindowPos(hWnd,HWND_TOP,x,y,0,0,SWP_NOSIZE);  // 移動窗口

return true;

}

評論