WM_SETTINGCHANGE Code Example

4/19/2010

Use the WM_SETTINGCHANGE notification for detecting screen rotations and performing processing on any rotating application windows that are not full-screen. If your application has only full-screen application windows, there is no need to handle the WM_SETTINGCHANGE notification.

The following code is an example of a window's WndProc function that includes a case statement for handling the WM_SETTINGCHANGE notification.

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAMwParam, LPARAMlParam)
{
    switch (message) 
    {
         // The code for handling other Windows messages has been omitted for clarity.
         // ...
        case WM_SETTINGCHANGE:
            {
                if (wParam == SETTINGCHANGE_RESET)
                {
                    // The processing done here can include
                    // resizing full-screen child windows
                    // and calling the Windows Embedded CE
                    // MoveWindow function on top-level windows.
                    INT nWidth = GetSystemMetrics(SM_CXSCREEN);
                    HWND hEditBox = GetDlgItem(hWnd, IDC_EDIT);
                    HWND hEnterButton = GetDlgItem(hWnd, IDC_BUTTON);

                    MoveWindow(hEditBox, 8, 4, nWidth - 0, 20, TRUE);
                    MoveWindow(hEnterButton, nWidth - 57, 4, 50, 20, TRUE);
                }
            }
            break;
    }
}

See Also

Concepts

WM_SIZE Code Example

Other Resources

Screen Orientation Modes