Не приходит WM_SIZE

Тема в разделе "WASM.WIN32", создана пользователем asmeradm, 6 янв 2010.

  1. asmeradm

    asmeradm New Member

    Публикаций:
    0
    Регистрация:
    4 июл 2007
    Сообщения:
    26
    Доброго времени суток Господа.

    Не буду долго расписывать, приведу кусок кода.

    Код (Text):
    1. switch(uMsg)
    2.     {
    3.         case WM_NCHITTEST:
    4.             dwClientX = LOWORD(lParam) - DataBase->GetSettingDWORD(L"WINDOW_X");
    5.             dwClientY = HIWORD(lParam) - DataBase->GetSettingDWORD(L"WINDOW_Y");
    6.             if (dwClientX < SkinEngine->WindowBack.dwBottom)
    7.             {
    8.                 if(dwClientY > SkinEngine->dwContainerHeight - SkinEngine->WindowBack.dwBottom) return HTBOTTOMLEFT;
    9.                 else if(dwClientY > SkinEngine->WindowBack.dwTop) return HTLEFT;
    10.             }
    11.             else if (dwClientX > SkinEngine->dwContainerWidth - SkinEngine->WindowBack.dwRight)
    12.             {
    13.                 if(dwClientY > SkinEngine->dwContainerHeight - SkinEngine->WindowBack.dwBottom) return HTBOTTOMRIGHT;
    14.                 else if(dwClientY > SkinEngine->WindowBack.dwTop) return HTRIGHT;
    15.             }
    16.             else if (dwClientY > SkinEngine->dwContainerHeight - SkinEngine->WindowBack.dwBottom) return HTBOTTOM;
    17.             else return (DefWindowProc(hwnd, uMsg, wParam, lParam));
    18.         break;
    19.  
    20.         case WM_GETMINMAXINFO:
    21.             MinMaxInfo = reinterpret_cast<MINMAXINFO*>(lParam);
    22.             MinMaxInfo->ptMinTrackSize.x = 300;
    23.             MinMaxInfo->ptMinTrackSize.y = 200;
    24.         break;
    25.  
    26.         case WM_SIZING:
    27.             if(!SkinEngine->ContainerHWND) break;
    28.             if(SkinEngine->bOpenGLEnabled) SkinEngine->EnableOpenGL(FALSE);
    29.             WindowRECT = reinterpret_cast<RECT*>(lParam);
    30.             SkinEngine->Resize(WindowRECT->right - WindowRECT->left, WindowRECT->bottom - WindowRECT->top);
    31.             MoveWindow(SkinEngine->CListHWND,
    32.                        WindowRECT->left + SkinEngine->WindowBack.dwLeft,
    33.                        WindowRECT->top + SkinEngine->WindowBack.dwTop,
    34.                        SkinEngine->dwCListWidth,
    35.                        SkinEngine->dwClistHeight, TRUE);
    36.         return TRUE;
    37.  
    38.         case WM_SIZE:
    39.             if (!SkinEngine->ContainerHWND) break;
    40.             DataBase->SetSetting(L"WINDOW_WIDTH", LOWORD(lParam));
    41.             DataBase->SetSetting(L"WINDOW_HEIGHT", HIWORD(lParam));
    42.             SkinEngine->Resize(DataBase->GetSettingDWORD(L"WINDOW_WIDTH"),
    43.                         DataBase->GetSettingDWORD(L"WINDOW_HEIGHT"));
    44.             SkinEngine->EnableOpenGL(DataBase->GetSettingDWORD(L"SKIN_OPENGL_ENABLED"));
    45.             SkinEngine->DrawScene();
    46.         break;
    47.  
    48.         case WM_MOVE:
    49.             DataBase->SetSetting(L"WINDOW_X", LOWORD(lParam));
    50.             DataBase->SetSetting(L"WINDOW_Y", HIWORD(lParam));
    51.         break;
    52.  
    53.         case WM_DATA_ARRIVED:
    54.             Icq->HandleArrivedData();
    55.         break;
    56.  
    57.         case WM_CLOSE:
    58.             PostQuitMessage(NULL);
    59.         break;
    60.  
    61.         default:
    62.             return (DefWindowProc(hwnd, uMsg, wParam, lParam));
    63.     }
    Собственно, проблема в subject. Ни WM_MOVE, ни WM_SIZE, ни WM_WINDOWPOSCHANGED не приходят, чем меня немало удивили. Окно WS_EX_LAYERED, WS_POPUP. Кто-нибудь сталкивался?
     
  2. asmeradm

    asmeradm New Member

    Публикаций:
    0
    Регистрация:
    4 июл 2007
    Сообщения:
    26
    Вопрос снят.