Коли розмір і розташування області вікна клієнта мають бути обчислені, надсилається повідомлення WM_NCCALCSIZE. Обробкою це повідомлення, програма може контролювати зміст області вікна клієнта під час змінення розміру або розташування вікна.
WM_NCCALCSIZE fCalcValidRects = wParam (BOOL); / / дійсні сфері прапор lpncsp = lParam (LPNCCALCSIZE_PARAMS); / / Розмір обчислення даних або lpncsp = lParam (LPRECT); / / координує нове вікно
Якщо wParam має значення FALSE, застосунок не потрібно вказати дійсний частина області клієнта.
Якщо wParam має значення FALSE, lParam вказує на RECT структури. На запис структура містить прямокутник запропонованих вікна вікна. При виході структура повинна містити екранних координатах відповідної області вікон клієнта.
Якщо параметра fCalcValidRects має значення FALSE, додаток слід повернути нуль.
Якщо fCalcValidRects має значення TRUE, додаток слід повернути нуль або комбінація таких значень:
| Значення | Значення |
|---|---|
| WVR_ALIGNTOP, WVR_ALIGNLEFT, WVR_ALIGNBOTTOM, WVR_ALIGNRIGHT | |
| Ці цінності, використані в поєднанні, вказати, що клієнтської області вікна, щоб бути збережені і належним чином вирівняні по відношенню до нового розташування вікна. Наприклад, щоб вирівняти клієнтської області у лівому нижньому куті, повернути значення WVR_ALIGNLEFT та WVR_ALIGNBOTTOM. | |
| WVR_HREDRAW, WVR_VREDRAW | |
| Ці значення, використовується у поєднанні з будь-яких інших значень, викликати вікно повністю Перемальовує якщо клієнт прямокутник зміни розмір по горизонталі або по вертикалі. Ці значення схожі стилі клас CS_HREDRAW і CS_VREDRAW. | |
| WVR_REDRAW | |
| Це значення викликає все вікно Перемальовує. Це поєднання WVR_HREDRAW і WVR_VREDRAW значення. | |
| WVR_VALIDRECTS | |
| Це значення вказує, що, після повернення з WM_NCCALCSIZE, прямокутники, вказаний на rgrc [1] і rgrc [2] членів NCCALCSIZE_PARAMS структури містять дійсної призначення і джерело площа прямокутники, відповідно. Система поєднує в собі ці прямокутники, для обчислення області вікна зберігаються. Система копіювання будь-якій частині вікна зображення, що знаходиться в межах прямокутника джерело і зображення, прямокутник, призначення-кліпи. Як прямокутники знаходяться в координат батьків родич або екран відносна. | |
| Це значення, що повертається дозволяє програмі реалізувати більш складні стратегії збереження області клієнта, наприклад центрування або збереження підмножина області клієнта. | |
Якщо fCalcValidRects має значення TRUE, і програма повертає нуль, старі клієнтської області зберігається і вирівняно по лівому верхньому куті області новий клієнт.
Вікно може Перемальовує, залежно від того, чи вказано клас стиль CS_HREDRAW або CS_VREDRAW. Це за замовчуванням, зворотною обробки цього повідомлення за допомогою функції DefWindowProc (на додаток до звичайної клієнт прямокутник розрахунок описано в попередній таблиці).
nbsp; Windows &NT: вимагає 3.1 або пізнішої версії.
Windows:Вимагає Windows 95 або пізнішої версії.
Windows CE:Не підтримується.
Заголовка:Оголошена в winuser.h.
Огляд Windows, вікно повідомлення, DefWindowProc, MoveWindow, SetWindowPos, NCCALCSIZE_PARAMS, RECT