сообщение WM_SIZE
Отправлено в окно после изменения его размера.
Окно получает это сообщение через функцию WindowProc .
#define WM_SIZE 0x0005
-
wParam
-
Тип запрошенного изменения размера. Этот параметр может принимать одно из указанных ниже значений.
Значение Значение - SIZE_MAXHIDE
- 4
Сообщение отправляется во все всплывающие окна, когда развернуто другое окно. - SIZE_MAXIMIZED
- 2
Окно развернуто. - SIZE_MAXSHOW
- 3
Сообщение отправляется во все всплывающие окна, когда другое окно восстановлено до его бывшего размера. - SIZE_MINIMIZED
- 1
Окно свернуто. - SIZE_RESTORED
- 0
Окно было изменено, но ни SIZE_MINIMIZED, ни SIZE_MAXIMIZED значение не применяется. -
lParam
-
Слово с низким порядком lParam указывает новую ширину клиентской области.
Слово высокого порядка lParam указывает новую высоту клиентской области.
Тип: LRESULT
Если приложение обрабатывает это сообщение, оно должно возвращать ноль.
/******************************************************************
* *
* SimpleText::OnResize *
* *
* If the application receives a WM_SIZE message, this method *
* resize the render target appropriately. *
* *
******************************************************************/
void SimpleText::OnResize(UINT width, UINT height)
{
if (pRT_)
{
D2D1_SIZE_U size;
size.width = width;
size.height = height;
pRT_->Resize(size);
}
}
LRESULT CALLBACK SimpleText::WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
SimpleText *pSimpleText = reinterpret_cast<SimpleText *>(
::GetWindowLongPtr(hwnd, GWLP_USERDATA));
if (pSimpleText)
{
switch(message)
{
case WM_SIZE:
{
UINT width = LOWORD(lParam);
UINT height = HIWORD(lParam);
pSimpleText->OnResize(width, height);
}
return 0;
// ...
Пример из классических примеров Windows на GitHub.
Если функция SetScrollPos или MoveWindow вызывается для дочернего окна в результате сообщения WM_SIZE, параметр bRedraw или bRepaint должен быть ненулевой, чтобы привести к повторному повтору окна.
Хотя ширина и высота окна имеют 32-разрядные значения, параметр lParam содержит только 16 битов с низким порядком.
Функция DefWindowProc отправляет сообщения WM_SIZE и WM_MOVE при обработке сообщения WM_WINDOWPOSCHANGED. Сообщения WM_SIZE и WM_MOVE не отправляются, если приложение обрабатывает сообщение WM_WINDOWPOSCHANGED без вызова DefWindowProc.
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера |
Windows 2000 Server [только классические приложения] |
Верхний колонтитул |
|
-
Ссылка
-
Концептуальной
-
Другие ресурсы