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;
}
}