INF: Centering a Dialog Box on the Screen

ID Number: Q74798

3.00 3.10

WINDOWS

Summary:

When an application developed for the Microsoft Windows graphical

environment displays a dialog box, centering the dialog box on the

screen is sometimes desirable. However, on systems with high-

resolution displays, the application displaying the dialog box may be

nowhere near the center of the screen. In these cases, it is

preferable to place the dialog near the application requesting input.

To center a dialog box on the screen before it is visible, add the

following lines to the processing of the WM_INITDIALOG message:

{

RECT rc;

GetWindowRect(hDlg, &rc);

SetWindowPos(hDlg, NULL,

((GetSystemMetrics(SM_CXSCREEN) - (rc.right - rc.left)) / 2),

((GetSystemMetrics(SM_CYSCREEN) - (rc.bottom - rc.top)) / 2),

0, 0, SWP_NOSIZE | SWP_NOACTIVATE);

}

This code centers the dialog horizontally and vertically.

Additional reference words: 3.00 3.10