對話框(DIALOG)模板可以設定顯示位置,但因屏幕大小不一,總想讓對話框在屏幕居中顯示.
- 獲取窗口的矩形區域GetWindowRect(),計算窗口的寬和高
- 獲取屏幕寬和高GetSystemMetrics()
- 重新設置窗口位置
下面給出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;
}