WM_NCCALCSIZE

Коли розмір і розташування області вікна клієнта мають бути обчислені, надсилається повідомлення WM_NCCALCSIZE. Обробкою це повідомлення, програма може контролювати зміст області вікна клієнта під час змінення розміру або розташування вікна.

WM_NCCALCSIZE fCalcValidRects = wParam (BOOL);        / / дійсні сфері прапор lpncsp = lParam (LPNCCALCSIZE_PARAMS);  / / Розмір обчислення даних або lpncsp = lParam (LPRECT);               / / координує нове вікно 

 

Параметри

fCalcValidRects
Значення wParam. Якщо wParam має значення TRUE, вказує, що в заяві необхідно вказати, яка частина області клієнта містить неприпустимі відомості. Система дійсний відомості будуть скопійовані до вказаної області в межах області новий клієнт.

Якщо wParam має значення FALSE, застосунок не потрібно вказати дійсний частина області клієнта.

lpncsp
Значення lParam. Якщо wParam має значення TRUE, lParam вказує на NCCALCSIZE_PARAMS структури, що містить інформацію про заявку можна використовувати для обчислення новий розмір і місце клієнта прямокутник.

Якщо 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 (на додаток до звичайної клієнт прямокутник розрахунок описано в попередній таблиці).

QuickInfo

nbsp; Windows &NT: вимагає 3.1 або пізнішої версії.
Windows:Вимагає Windows 95 або пізнішої версії.
Windows CE:Не підтримується.
Заголовка:Оголошена в winuser.h.

Дивіться також

Огляд Windows, вікно повідомлення, DefWindowProc, MoveWindow, SetWindowPos, NCCALCSIZE_PARAMS, RECT

Index