//由IDD_STATUS_DIALOG創建一個對話框
CDialog* pCheckNetStatusDlg = new CDialog();
pCheckNetStatusDlg->Create(IDD_STATUS_DIALOG, this);
RECT statusWndClientRect, mainWndClientRect, mainWndRect;
pCheckNetStatusDlg->GetClientRect(&statusWndClientRect);
this->GetClientRect(&mainWndClientRect);
this->GetWindowRect(&mainWndRect);
pCheckNetStatusDlg->ShowWindow(SW_SHOW);
pCheckNetStatusDlg->MoveWindow((mainWndClientRect.right - statusWndClientRect.right) / 2 + mainWndRect.left,
(mainWndClientRect.bottom - statusWndClientRect.bottom) / 2 + mainWndRect.top,
statusWndClientRect.right, statusWndClientRect.bottom);
CString strStatus = "當前狀態";
//修改IDC_STATIC_STATUS的文字
CWnd* pWndStatus = pCheckNetStatusDlg->GetDlgItem(IDC_STATIC_STATUS);
//設置新的文字
pWndStatus->SetWindowText(strStatus);
CDC* pDC = GetDC();
//計算文字長度
CSize sizeStatus = pDC->GetTextExtent(strStatus);
RECT rectStatus;
//得到文字在屏幕上的位置
pWndStatus->GetWindowRect(&rectStatus);
//設置文字位置
rectStatus.left = (rectStatus.left + rectStatus.right) / 2 - sizeStatus.cx / 2;
rectStatus.right = rectStatus.left + sizeStatus.cx;
pCheckNetStatusDlg->ScreenToClient(&rectStatus);
//調整大小
pWndStatus->MoveWindow(&rectStatus);
//刷新窗口 Invalidate()是發送一個命令WM_PAINT來重畫窗口, WM_PAINT是優先級比較低的, UpdateWindow是立即重畫, 優先級高
pCheckNetStatusDlg->UpdateWindow();