Win32 API. Структуры и сообщения окна

ОГЛАВЛЕНИЕ

Нижеперечисленные структуры и сообщения используются для создания и управления окнами.

Структуры окна

Ниже перечисленные структуры используются для создания и управления окнами. 


 

Структура CLIENTCREATESTRUCT

Структура CLIENTCREATESTRUCT содержит информацию о меню и первом рабочем окне дочернего окна многодокументной среды (MDI). Прикладная программа передает указатель на эту структуру как параметр lpvParam функции CreateWindow при создании многодокументального интерфейса (MDI) окна пользователя.

Синтаксис

typedef struct tagCLIENTCREATESTRUCT 
{   
HANDLE hWindowMenu;
UINT idFirstChild;
}
CLIENTCREATESTRUCT;

Элементы структуры hWindowMenu
Идентифицирует дескриптор меню Окна MDIMDI окна, используя функцию GetSubMenu.
idFirstChild
Определяет идентификатор дочернего окна первого созданного дочернего окна (MDI). Windows увеличивает идентификатор для каждого дополнительного дочернего окна Многодокументального Интерфейса (MDI), прикладная программа создает и переназначает идентификаторы, когда прикладная программа уничтожает окно, чтобы сохранить диапазон непрерывных идентификаторов. Эти идентификаторы используются в сообщениях WM_COMMAND, посланных рамочному окну (MDI) прикладной программы, когда дочернее окно выбрано из меню Окна; они не должны находиться в противоречии с любыми другими командными идентификаторами.

Смотри также

CreateWindow, GetSubMenu, MDICREATESTRUCT, WM_COMMAND

Размещение и совместимость CLIENTCREATESTRUCT

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека 
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется

 

Структура COPYDATASTRUCT

Структура COPYDATASTRUCT содержит данные, которые будут переданы в другую прикладную программу в соответствии с сообщением WM_COPYDATA.

Синтаксис

typedef struct tagCOPYDATASTRUCT 
{   
DWORD dwData;
DWORD cbData;
PVOID lpData;
} COPYDATASTRUCT;

Элементы

dwData
Устанавливает до 32 битов данных, которые будут переданы в принимающую прикладную программу.
cbData
Устанавливает размер, в байтах, данных, указанных элементом структуры lpData.
lpData
Указывает на данные, которые будут переданы в принимающую прикладную программу. Этот элемент структуры может быть значением ПУСТО (NULL).

Смотри также WM_COPYDATA

Размещение и совместимость COPYDATASTRUCT

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Структура CREATESTRUCT

Структура CREATESTRUCT определяет параметры инициализации, передаваемые оконной процедуре прикладной программы.

Синтаксис

typedef struct tagCREATESTRUCT 
{   
LPVOID lpCreateParams;
HINSTANCE hInstance;
HMENU hMenu;
HWND hwndParent;
int cy;
int cx;
int y;
int x;
LONG style;
LPCTSTR lpszName;
LPCTSTR lpszClass;
DWORD dwExStyle;
} CREATESTRUCT;

Элементы структуры lpCreateParams

Указывает на данные, которые нужно использовать для создания окна. Windows NT: Этот элемент структуры является значением адреса со спецификатором SHORT (16_bit), которое устанавливает размер, в байтах, данных создания окна. Значение непосредственно сопровождается данными создания. Для получения дополнительной информации, см. следующий раздел Замечаний.
hInstance
Идентифицирует модуль, который владеет новым окном.
hMenu
Идентифицирует меню, которое используется созданным окном.
hwndParent
Идентифицирует родительское окно, если созданное окно - дочернее окно. Если окно является владельцем, этот элемент идентифицирует окно владельца. Если окно - не дочернее или не находящееся в собственности окно, этот элемент - ПУСТО (NULL).
cy
Устанавливает высоту нового окна, в пикселях.
cx
Устанавливает ширину нового окна, в пикселях.
y
Устанавливает y-координату верхнего левого угла нового окна. Если новое окно - дочернее окно, координаты - относительно родительского окна. Иначе, координаты - относительно экранного начала координат.
x
Устанавливает x-координату верхнего левого угла нового окна. Если новое окно - дочернее окно, координаты - относительно родительского окна. Иначе, координаты - относительно экранного начала координат. style
Определяет стиль для нового окна. lpszName
Указывает на строку с нулевым символом в конце, которая определяет имя нового окна.
lpszClass
Указывает на строку с нулевым символом в конце, которая определяет имя класса нового окна.
dwExStyle
Определяет расширенный стиль для нового окна.

Замечания

Windows NT: Ссылаясь на элемент lpCreateParams структуры CREATESTRUCT, поскольку указатель может быть не выровненный по границе ДВОЙНОГО СЛОВА (DWORD), прикладная программа должена обратиться к данным, использующим указатель, который был объявлен с ис-пользованием типа НЕВЫРОВНЕННЫЙ (UNALIGNED), как показано в следующем примере:
typedef struct tagMyData 
{
. . .;   // Определите данные для создания окна здесь
} MYDATA;

typedef struct tagMyDlgData {
SHORT cbExtra;
MYDATA myData;
} MYDLGDATA, UNALIGNED *PMYDLGDATA;

PMYDLGDATA pMyDlgdata = (PMYDLGDATA) (((LPCREATESTRUCT) lParam)->lpcreateParams);

Смотри также

CreateWindow, CreateWindowEx

Размещение и совместимость CREATESTRUCT

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    WinNT
Замечания по платформе  Не имеется


Структура MDICREATESTRUCT

Структура MDICREATESTRUCT содержит информацию о классе, заголовке, владельце, расположении и размере дочернего окна многодокументной среды (MDI).

Синтаксис

typedef struct tagMDICREATESTRUCT 
{   
LPCTSTR szClass;
LPCTSTR szTitle;
HANDLE hOwner;
int x;
int y;
int cx;
int cy;
DWORD style;
LPARAM lParam;
} MDICREATESTRUCT;

Элементы

szClass
Указывает на строку с нулевым символом в конце, которая устанавливает имя класса окна дочернего окна Многодокументального Интерфейса (MDI). Имя класса, должно быть зарегистрировано предыдущим обращением к функции RegisterClass.
szTitle
Указывает на строку с символом нуля в конце, которая представляет собой заголовок дочернего окна Многодокументального Интерфейса (MDI). Windows отображает заголовок в области заголовка дочернего окна.
hOwner
Идентифицирует экземпляр прикладной программы, создающей рабочее окно Многодокументального Интерфейса (MDI).
x
Устанавливает начальную горизонтальную позицию дочернего окна MDI, в координатах пользователя. Если этот элемент - CW_USEDEFAULT, дочернее окно MDI принимает заданную по умолчанию горизонтальную позицию.
y
Устанавливает начальную вертикальную позицию дочернего окна MDI, в координатах пользователя. Если этот элемент - CW_USEDEFAULT, дочернее окно MDI принимает заданную по умолчанию вертикальную позицию.
cx
Устанавливает начальную ширину, в единицах измерения устройства, дочернего окна MDI. Если этот элемент - CW_USEDEFAULT, дочернее окно MDI принимает заданную по умолчанию ширину.
cy
Устанавливает начальную высоту, в единицах измерения устройства, дочернего окна MDI. Если этот элемент - CW_USEDEFAULT, дочернее окно MDI принимает заданную по умолчанию высоту.
style
Определяет стиль дочернего окна Многодокументального Интерфейса (MDI). Если рабочее окно MDI было создано со стилем окна MDIS_ALLCHILDSTYLES, этот элемент может быть любой комбинацией стилей окна, перечисленных в описании функции CreateWindow. Иначе, этот элемент может быть одним или большим количеством следующих значений:
  • WS_MINIMIZE - Создает дочернее окно Многодокументального Интерфейса (MDI), которое первоначально свернуто.
  • WS_MAXIMIZE - Создает дочернее окно MDI, которое первоначально развернуто.
  • WS_HSCROLL - Создает дочернее окно MDI, которое имеет горизонтальную линейку прокрутки.
  • WS_VSCROLL - Создает дочернее окно MDI, которое имеет вертикальную линейку прокрутки .

lParam
Устанавливает определяемое программой 32-разрядное значение.
Замечания Когда дочернее окно многодокументного интерфейса (MDI) создано, Windows посылает окну сообщение WM_CREATE. Параметр lParam WM_CREATE содержит указатель на структуру CREATESTRUCT. Элемент этой структуры lpCreateParams содержит указатель на структуру MDICREATESTRUCT, переданную с сообщением WM_MDICREATE, которое создало дочернее окно многодокументного интерфейса (MDI).

Смотри также CLIENTCREATESTRUCT, CREATESTRUCT, WM_CREATE

Размещение и совместимость MDICREATESTRUCT

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    WinNT
Замечания по платформе  Не имеется


Структура MINMAXINFO

Структура MINMAXINFO содержит информацию о развернутом размере окна и устанавливаемых позициях ее минимального и максимального размера.

Синтаксис

typedef struct tagMINMAXINFO 
{  
POINT ptReserved;
POINT ptMaxSize;
POINT ptMaxPosition;
POINT ptMinTrackSize;
POINT ptMaxTrackSize;
} MINMAXINFO;

Элементы ptReserved
Зарезервировано, не используется.
ptMaxSize
Устанавливает развернутую ширину (point.x) и развернутую высоту (point.y) окна.
ptMaxPosition
Устанавливает позицию левой стороны развернутого окна (point.x) и позицию верхней части развернутого окна (point.y).
ptMinTrackSize
Определяет минимум устанавливаемой ширины (point.x) и минимум устанавливаемой высоты (point.y) окна.
ptMaxTrackSize
Определяет максимум устанавливаемой ширины (point.x) и максимум устанавливаемой высоты (point.y) окна.

Смотри также

POINT, WM_GETMINMAXINFO

Размещение и совместимость MINMAXINFO

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Структура NCCALCSIZE_PARAMS

Структура NCCALCSIZE_PARAMS содержит информацию, которую прикладная программа может использовать при обработке сообщения WM_NCCALCSIZE, чтобы вычислить размер, позиию и допустимое содержание рабочей области окна.

Синтаксис

typedef struct _NCCALCSIZE_PARAMS 
{  
RECT    rgrc[3];
PWINDOWPOS   lppos;
}
NCCALCSIZE_PARAMS;

Элементы

rgrc
Устанавливает массив прямоугольников. Первый содержит новые координаты окна, которое было перемещено или изменено. Второй содержит координаты окна прежде, чем оно было перемещено или изменено. Третье содержит координаты рабочей области окна прежде, чем окно было перемещено или изменено. Если окно - дочернее окно, координаты - относительно рабочей области родительского окна. Если окно - окно верхнего уровня, координаты - относительно экранного начала координат.
lppos
Указывает на структуру WINDOWPOS, которая содержит размер и значения расположения, установленные в операции, которая передвигала или изменила размеры окна.

Смотри также

MoveWindow, RECT, SetWindowPos, WINDOWPOS, WM_NCCALCSIZE

Размещение и совместимость NCCALCSIZE_PARAMS

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Структура STYLESTRUCT

Структура STYLESTRUCT содержит стили для окна.

Синтаксис

typedef struct tagSTYLESTRUCT 
{   
DWORD styleOld;
DWORD styleNew;
} STYLESTRUCT, * LPSTYLESTRUCT;

Элементы

style
Устанавливает массив стилей окна или флажков улучшенного стиля.

Смотри также

WM_STYLECHANGED, WM_STYLECHANGING

Размещение и совместимость STYLESTRUCT

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Структура WINDOWPLACEMENT

Структура WINDOWPLACEMENT содержит информацию о размещении окна на экране.

Синтаксис

typedef struct _WINDOWPLACEMENT 
{
UINT length;
UINT flags;
UINT showCmd;
POINT ptMinPosition;
POINT ptMaxPosition;
RECT rcNormalPosition;
} WINDOWPLACEMENT;

Элементы

length
Устанавливает длину структуры, в байтах. Перед вызовом функций GetWindowPlacement или SetWindowPlacement, установите этот элемент в sizeof (WINDOWPLACEMENT). GetWindowPlacement и SetWindowPlacement потерпят неудачу, если этот элемент не будет установлен правильно.
flags
Устанавливает флажки, которые управляют позицией свернутого окна и методом, которым окно восстанавливается. Этот элемент может иметь несколько из следующих значений:

  • WPF_RESTORETOMAXIMIZED - Определяет, что восстановленное окно будет развернуто, независимо от того, было ли оно развернуто прежде, чем оно было свернуто. Эта установка допустима только в следующий раз, когда окно восстанавливается. Она не изменяет заданное по умолчанию поведение восстановления. Этот флажок правилен только тогда, когда для элемента showCmd установлено значение SW_SHOWMINIMIZED.
  • WPF_SETMINPOSITION - Устанавливает, что координаты свернутого окна могут быть определены. Этот флажок должен быть установлен, если в элементе ptMinPosition установлены координаты.

showCmd
Определяет текущее состояние показа окна. Этот элемент может быть одним из следующих значений:

  • SW_HIDE - Скрывает окно и активизирует другое окно.
  • SW_MINIMIZE - Свертывает определяемое окно и активизирует окно верхнего уровня в списке системы.
  • SW_RESTORE - Активизирует и отображает на экране окно. Если окно свернуто или развернуто, Windows восстанавливает его в первоначальном размере и позиции (то же самое, что и SW_SHOWNORMAL).
  • SW_SHOW - Активизирует окно и отображает его на экране в его текущем размере и позиции.
  • SW_SHOWMAXIMIZED - Активизирует окно и отображает его на экране как развернутое окно.
  • SW_SHOWMINIMIZED - Активизирует окно и отображает его на экране как пиктограмму.
  • SW_SHOWMINNOACTIVE - Отображает окно как пиктограмму. Активное окно остается активным.
  • SW_SHOWNA - Отображает окно в его текущем состоянии. Активное окно остается активным.
  • SW_SHOWNOACTIVATE - Отображает окно в его самом современном размере и позиции. Активное окно остается активным.
  • SW_SHOWNORMAL - Активизирует и отображает окно. Если окно свернуто или развернуто, Windows восстанавливает его в первоначальном размере и позиции (то же самое, что и SW_RESTORE).

ptMinPosition
Устанавливает координаты левого верхнего угла окна, когда оно свернуто.
ptMaxPosition
Устанавливает координаты левого верхнего угла окна, когда оно развернуто.
rcNormalPosition
Устанавливает координаты окна, когда оно находится в восстановленной позиции.

Смотри также

ShowWindow, POINT, RECT

Размещение и совместимость WINDOWPLACEMENT

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Структура WINDOWPOS

Структура WINDOWPOS содержит информацию о размерах и позиции окна.

Синтаксис

typedef struct _WINDOWPOS 
{   
HWND hwnd;
HWND hwndInsertAfter;
int x;
int y;
int cx;
int cy;
UINT flags;
} WINDOWPOS;

Элементы

hwnd
Идентифицирует окно.
hwndInsertAfter
Определяет позицию окна в Z-последовательности (позиция от начала к концу). Этот элемент может быть дескриптором окна, позади которого это окно помещено, или может быть одно из частных значений, перечисленных с функцией SetWindowPos.
x
Устанавливает позицию левого края окна.
y
Устанавливает позицию верхнего края окна.
cx
Устанавливает ширину окна, в пикселях.
cy
Устанавливает высоту окна, в пикселях.
flags
Устанавливает позицию окна. Этот элемент может быть одним из следующих значений:

  • SWP_DRAWFRAME - Выводит рамку (определенную в описании класса окна) вокруг окна.
  • SWP_FRAMECHANGED - Посылает окну сообщение WM_NCCALCSIZE, даже если размер окна не изменяется. Если этот флажок не установлен, WM_NCCALCSIZE посылается только тогда, когда размер окна изменяется.
  • SWP_HIDEWINDOW - Скрывает окно.
  • SWP_NOACTIVATE - Не активизирует окно. Если этот флажок не установлен, окно активизируется и перемещается в верхнюю часть или самой верхней или не самой верхней группы (в зависимости от установки параметра hWndInsertAfter).
  • SWP_NOCOPYBITS - Сбрасывает все содержание рабочей области. Если этот флажок не установлен, допустимое содержание рабочей области сохраняется и копируется обратно в рабочую область после того, как окно будет установлено по размеру или переустановлено (снова установлено).
  • SWP_NOMOVE - Сохраняет текущую позицию (игнорирует X и Y параметры).
  • SWP_NOOWNERZORDER - Не изменяет позицию окна владельца в Z-последовательности.
  • SWP_NOREDRAW - Не перерисовывает изменения. Если этот флажок установлен, перерисовки любого вида не происходит. Это применяется как к рабочей области, нерабочей области (включая область заголовка и полосы прокрутки), так и к любой части родительского окна, раскрытого в результате перемещения окна. Когда этот флажок установлен, прикладная программа должна явно либо аннулировать или перерисовывать любые части окна и родительского окна, которые надо перерисовать.
  • SWP_NOREPOSITION - То же самое, что и флажок SWP_NOOWNERZORDER.
  • SWP_NOSENDCHANGING - Предохраняет окно от приема сообщения WM_WINDOWPOSCHANGING.
  • SWP_NOSIZE - Сохраняет текущий размер (игнорирует cx и cy параметры).
  • SWP_NOZORDER - Сохраняет текущую Z-последовательность (игнорирует параметр hWndInsertAfter).
  • SWP_SHOWWINDOW - Отображает окно.

Смотри также

EndDeferWindowPos, SetWindowPos, WM_NCCALCSIZE

Размещение и совместимость WINDOWPOS

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Сообщения окна

Нижеперечисленные сообщения используются для создания и управления окнами.


Сообщение WM_ACTIVATE

Сообщение WM_ACTIVATE посылается, когда окно активизируется или деактивизируется. Это сообщение посылается сначала оконной процедуре деактивизируемого окна верхнего уровня; затем оно посылается оконной процедуре активизируемого окна верхнего уровня.

Синтаксис

WM_ACTIVATE
fActive = LOWORD(wParam);  // флажок активизации
fMinimized = (BOOL) HIWORD(wParam);  // флажок минимизации
hwndPrevious = (HWND) lParam;  // дескриптор окна

Параметры

fActive
Значение младшего байта слова wParam. Устанавливает, активизируется ли окно или оно деактивизируется. Этот параметр может быть одним из следующих значений:

  • WA_ACTIVE - Активизировано некоторым методом другим, чем щелчок мыши (например, обращением к функции SetActiveWindow или использованием интерфейса клавиатуры для выбора окна).
  • WA_CLICKACTIVE - Активизировано щелчком мыши.
  • WA_INACTIVE - Деактивизировано.

fMinimized
Значение старшего байта слова wParam. Устанавливает свернутое состояние окна, активизируемого или деактивизируемого. Значение, отличающееся от нуля, указывает, что окно свернуто (минимизировано).
hwndPrevious
Значение lParam. Идентифицирует окно, активизируемое или деактивизируемое, в зависимости от значения параметра fActive. Если значение fActive - WA_INACTIVE, hwndPrevious - дескриптор активизируемого окна. Если значение fActive - WA_ACTIVE или WA_CLICKACTIVE, hwndPrevious - дескриптор деактивизируемого окна. Этот дескриптор может быть ПУСТО (NULL).
Возвращаемые значения
Если программа обработала это сообщение, она должна возвратить нуль.

Действие по умолчанию
Если окно активизируется и не свернуто (минимизировано), функция DefWindowProc устанавливает фокус клавиатуры в окно.

Замечания

Если окно активизировано щелчком мыши, оно также принимает сообщение WM_MOUSEACTIVATE.

Смотри также

DefWindowProc, SetActiveWindow, WM_MOUSEACTIVATE, WM_NCACTIVATE

Размещение и совместимость WM_ACTIVATE

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


 

Сообщение WM_ACTIVATEAPP

Сообщение WM_ACTIVATEAPP посылается тогда, когда окно, принадлежащее другой прикладной программе, кроме активного окна, собирается быть активизированным. Сообщение посылается прикладной программе, чье окно активизируется и прикладной программе, чье окно деактивируется.

Синтаксис

WM_ACTIVATEAPP 
fActive = (BOOL) wParam;    // активизация флажка
dwThreadID = (DWORD) lParam:   // идентификатор потока

Параметры

fActive
Значение wParam. Устанавливает, активизируется ли или деактивизируется окно. Этот параметр - ИСТИНА (TRUE), если окно активизируется; ЛОЖЬ(FALSE), если окно деактивизируется.

dwThreadID
Значение lParam. Определяет идентификатор потока. Если параметр fActive - ИСТИНА (TRUE), dwThreadID - идентификатор потока, который владеет деактивизируемым окном. Если fActive - ЛОЖЬ(FALSE), dwThreadID - идентификатор потока, который владеет активизируемым окном.

Возвращаемые значения

Если прикладная программа обрабатывает это сообщение, она должна возвратить нуль.

Смотри также

WM_ACTIVATE

Размещение и совместимость WM_ACTIVATEAPP

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Сообщение WM_CANCELMODE

Сообщение WM_CANCELMODE посылается окну фокуса, когда диалоговое окно или окно сообщений отображаются на экране; оно дает возможность окну фокуса отменить режимы, типа сбора данных от мыши.

Синтаксис

WM_CANCELMODE 

Параметры

У этого сообщения нет параметров.

Возвращаемые значения

Если приложение обрабатывает это сообщение, оно должно возвратить нуль.

Действие по умолчанию
Функция DefWindowProc отменяет внутреннюю обработку стандартного ввода линейки прокрутки, отменяет внутреннюю обработку меню и отказывается от сбора данных от мыши.

Смотри также

DefWindowProc, ReleaseCapture

Размещение и совместимость WM_CANCELMODE

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется

 

Сообщение WM_CHILDACTIVATE

Сообщение WM_CHILDACTIVATE посылается дочернему окну многодокументной среды (MDI) тогда, когда пользователь щелкает мышью по области заголовка окна или, когда окно активизировано, перемещено или установлено по размеру.

Синтаксис

WM_CHILDACTIVATE

Параметры

У этого сообщения нет параметров.

Возвращаемые значения

Если приложение обрабатывает сообщение, оно должно возвратить ноль.

Смотри также

MoveWindow, SetWindowPos

Размещение и совместимость WM_CHILDACTIVATE

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Сообщение WM_CLOSE

Сообщение WM_CLOSE посылается как сигнал, по которому окно или прикладная программа должны завершить свою работу.

Синтаксис

WM_CLOSE 

Параметры

У этого сообщения нет параметров.

Возвращаемые значения

Если приложение обрабатывает это сообщение, оно должно возвратить ноль.

Действие по умолчанию
Функция DefWindowProc обращается к функции DestroyWindow, чтобы уничтожить окно.

Примечания

Прикладная программа может запросить пользователя о подтверждении, до разрушения окна, в ходе обработки сообщение WM_CLOSE и вызывает функцию DestroyWindow только тогда, если пользователь подтверждает выбор.

Смотри также

DefWindowProc, DestroyWindow

Размещение и совместимость WM_CLOSE

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется

 

Сообщение WM_COMPACTING

Сообщение WM_COMPACTING посылается всем окнам верхнего уровня, когда Windows обнаруживает больше чем 12.5 процентов от системного времени в течение от 30 - до 60-секундного интервала, тратится на уплотнение памяти. Это указывает на то, что недостаточно системной памяти.

Синтаксис

WM_COMPACTING 
wCompactRatio = wParam; // степень сжатия

Параметры

wCompactRatio
Значение wParam. Устанавливает коэффициент текущего времени центрального процессора (ЦП), потраченного Windows на уплотнение памяти, к текущему времени ЦП, потраченному Windows на выполнение других действий. Например, 0x8000 представляет 50 процентов от потраченного ПРОЦЕССОРНОГО ВРЕМЕНИ на уплотнение памяти.

Возвращаемые значения

Если приложение обрабатывает это сообщение, оно должно возвратить ноль.

Замечания

Когда прикладная программа принимает это сообщение, она должна освободить так много памяти, сколько это возможно, принимая во внимание текущий уровень действия прикладной про-граммы и общее количество прикладных программ, запущенных в Windows.

Размещение и совместимость WM_COMPACTING

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Сообщение WM_COPYDATA

Сообщение WM_COPYDATA передается тогда, когда одна программа пересылает данные в другую программу.

Синтаксис

WM_COPYDATA 
wParam = (WPARAM) (HWND) hwnd;   // дескриптор передающего окна
lParam = (LPARAM) (PCOPYDATASTRUCT) pcds;   // указатель на структуру с данными

Параметры

hwnd
Идентифицирует окно, которое передает данные.
pcds
Указывает на структуру COPYDATASTRUCT, которая содержит данные для передачи.

Возвращаемые значения

Если принимающая программа обрабатывает это сообщение, она должна возвратить значение ИСТИНА (TRUE); в противном случае она должна возвратить - ЛОЖЬ (FALSE).

Замечания

Для передачи этого сообщения программа должна использовать функцию SendMessage, а не функцию PostMessage. Данные, предназначенные для передачи, не должны содержать указателей или других ссылок на объекты, не доступные для программы, принимающей эти данные.
До тех пор, пока это сообщение действует, вызванные данные не должны быть изменены другим по-током процесса пересылки. Принимающая программа должна принимать во внимание данные только для чтения. Параметр pcds правилен только в течение обработки сообщения. Принимающая программа не должна освобождать память, вызванную pcds. Если принимающая программа обратилась к данным после возврата значения функцией SendMessage, она должно копировать данные в локальный буфер.

Смотри также

PostMessage, SendMessage, COPYDATASTRUCT

Размещение и совместимость WM_COPYDATA

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Сообщение WM_CREATE

Сообщение WM_CREATE посылается тогда, когда программа запрашивает, вызовом какой функции CreateWindowEx или CreateWindow должно быть создано окно. Оконная процедура нового окна принимает это сообщение после того, как окно создано, но до того, как окно становится видимым. Сообщение посылается перед возвращением значения функцией CreateWindowEx или CreateWindow.

Синтаксис

WM_CREATE 
lpcs = (LPCREATESTRUCT) lParam; // структура с данными создания

Параметры

lParam
Значение lParam. Указывает на структуру CREATESTRUCT, которая содержит информацию относительно создаваемого окна. Члены CREATESTRUCT идентичны параметрам функции CreateWindowEx.

Возвращаемые значения

Если приложение обрабатывает это сообщение, оно возвращает 0, чтобы продолжить создание окна. Если прикладная программа возвращает -1, то окно разрушается, и функция CreateWindowEx или CreateWindow возвращает значение дескриптора ПУСТО (NULL).

Смотри также

CreateWindow, CreateWindowEx, CREATESTRUCT, WM_NCCREATE

Размещение и совместимость WM_CREATE

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Сообщение WM_DESTROY

Сообщение WM_DESTROY посылается тогда, когда окно разрушается. Оно посылается оконной процедуре разрушаемого окна после того, как окно удалено с экрана. Это сообщение посылается сначала разрушаемому окну, а затем дочерним окнам (если таковые имеются) когда они разрушаются. В ходе обработки сообщения, оно может быть принято, так как все дочерние окна все еще существуют.

Синтаксис

 
WM_DESTROY

Параметры

У этого сообщения нет параметров.

Возвращаемые значения

Если программа обрабатывает это сообщение, оно должно возвратить ноль.

Замечания

Если разрушаемое окно - часть цепочки окон просмотра буфера обмена (установленное, вызовом функции SetClipboardViewer), окно должно удаляться из цепочки путем обработки функции ChangeClipboardChain перед возвратом из сообщения WM_DESTROY.

Смотри также

ChangeClipboardChain, DestroyWindow, PostQuitMessage, SetClipboardViewer, WM_CLOSE

Размещение и совместимость WM_DESTROY

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется

 

Сообщение WM_QUIT

Сообщение WM_QUIT указывает запрос, чтобы завершить прикладную программу и создается, когда из прикладной программы вызвана функция PostQuitMessage. Это вынуждает функцию GetMessage возвратить нуль.

Синтаксис

 
WM_QUIT
nExitCode = (int) wParam; // код завершения

Параметры nExitCode
Значение wParam. Определяет код завершения, данный в функции PostQuitMessage.

Возвращаемые значения

Это сообщение не имеет возвращаемого значения, потому что оно принуждает завершиться циклу сообщения до того, как сообщение посылается оконной процедуре прикладной программы.

Смотри также

GetMessage, PostQuitMessage

Размещение и совместимость WM_QUIT

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Сообщение WM_ENABLE

Сообщение WM_ENABLE посылается тогда, когда прикладная программа изменяет включенное состояние окна. Оно посылается окну, чьё включенное состояние изменяется. Это сообщение посылается перед возвращением значения функцией EnableWindow , но только после того, как изменилось включенное состояние (бит стиля WS_DISABLED) окна.

Синтаксис

WM_ENABLE 
fEnabled = (BOOL) wParam; // флажок включить/заблокировать

Параметры

fEnabled
Значение wParam. Устанавливает, было ли окно включено или заблокировано. Этот параметр был бы ИСТИНА (TRUE), если бы окно было включено или ЛОЖЬ(FALSE), если бы окно было заблокировано.

Возвращаемые значения

Если программа обрабатывает это сообщение, она должна возвратить ноль.

Смотри также

EnableWindow

Размещение и совместимость WM_ENABLE

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется

 

Сообщение WM_ENTERSIZEMOVE

Сообщение WM_ENTERSIZEMOVE посылается только один раз окну, когда оно вводит режим установки размеров или перемещения. Окно вводит режим перемещения или установки размеров, когда пользователь щелкает мышью по области заголовка окна или устанавливает размеры рамки окна, или когда окно передает сообщение WM_SYSCOMMAND в функцию DefWindowProc, а параметр wParam сообщения устанавливает значение SC_MOVE или SC_SIZE. Windows посылает сообщение WM_ENTERSIZEMOVE независимо от того, включено ли перемещение полных окон.

Синтаксис

 
WM_ENTERSIZEMOVE
wParam = 0; // не используется, должен быть ноль
lParam = 0; // не используется, должен быть ноль

Параметры

Это сообщение не имеет параметров.

Возвращаемые значения

Программа должна возвратить ноль, если она обрабатывает это приложение.

Смотри также

DefWindowProc, WM_EXITSIZEMOVE, WM_SYSCOMMAND

Размещение и совместимость WM_ENTERSIZEMOVE

Windows NT   Да 
Win95    Да
Win32s    Нет
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Сообщение WM_EXITSIZEMOVE

Сообщение WM_EXITSIZEMOVE посылается только один раз окну, после того, как оно вышло из режима установки размеров или перемещения.

Синтаксис

WM_EXITSIZEMOVE 
wParam = 0; // не используется должен быть ноль
lParam = 0; // не используется, должен быть ноль

Параметры

У этого сообщения нет параметров.

Возвращаемые значения

Программа должна возвратить ноль, если она обрабатывает это сообщение.

Смотри также

WM_ENTERSIZEMOVE

Размещение и совместимость WM_EXITSIZEMOVE

Windows NT   Да 
Win95    Да
Win32s    Нет
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Сообщение WM_GETICON

Сообщение WM_GETICON посылается окну, чтобы возвратить обратно дескриптор большой или маленькой пиктограммы, связанной с окном. Windows возвращает обратно большую пиктограмму при прорисовке свернутого окна и маленькую пиктограмму при прорисовке области заголовка.

Синтаксис

WM_GETICON 
fType = wParam; // тип пиктограммы

Параметры

fType
Значение wParam. Устанавливает тип возвращаемой обратно пиктограммы. Этот параметр может быть одним из следующих значений:

  • ICON_BIG - Возвратите обратно большую пиктограмму для окна.
  • ICON_SMALL - Возвратите обратно маленькую пиктограмму для окна.

Возвращаемые значения

Возвращаемое значение - дескриптор большой или маленькой пиктограммы, в зависимости от значения fType. Когда прикладная программа принимает это сообщение, она может возвратить дескриптор большой или маленькой пиктограммы, или передать сообщение в DefWindowProc.

Действие по умолчанию
DefWindowProc возвращает дескриптор большой или маленькой пиктограммы, связанной с окном, в зависимости от значения fType.

Примечания
Когда прикладная программа принимает это сообщение, она может возвратить дескриптор большой или маленькой пиктограммы, или передать сообщение в DefWindowProc.

Смотри также

DefWindowProc, WM_SETICON

Размещение и совместимость WM_GETICON

Windows NT   Да 
Win95    Да
Win32s    Нет
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Сообщение WM_GETMINMAXINFO

Сообщение WM_GETMINMAXINFO посылается окну, когда размер или позиция окна собира-ются измениться. Прикладная программа может использовать это сообщение, чтобы отменить максимизацию размера и позицию окна по умолчанию, или она устанавливает заданный по умолчанию минимальный или максимальный размер.

Синтаксис

 
WM_GETMINMAXINFO
lpmmi = (LPMINMAXINFO) lParam; // адрес структуры

Параметры

lpmmi
Значение lParam. Указывает на структуру MINMAXINFO, которая содержит значения позиции и габариты разворачивания по умолчанию и устанавливаемые по умолчанию минимальные и максимальные размеры. Прикладная программа может отменить значения параметров по умолчанию элементовов этой структуры.

Возвращаемые значения

Если приложение обрабатывает это сообщение, оно должно возвратить ноль.

Замечания

Установка максимального размера - самый большой размер окна, который может быть произведен, используя рамки, чтобы установить величину окна. Установка минимального размер - самый маленький размер окна, который может быть произведен, используя рамки, чтобы установить величину окна.

Смотри также

MoveWindow, SetWindowPos, MINMAXINFO

Размещение и совместимость WM_GETMINMAXINFO

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется

 

Сообщение WM_GETTEXT

Прикладная программа посылает сообщение WM_GETTEXT, чтобы копировать текст, который соответствует тексту в окне буфера, которым обеспечена вызывающая программа.

Синтаксис

WM_GETTEXT 
wParam = (WPARAM) cchTextMax;  // число копируемых символов
lParam = (LPARAM) lpszText; // адрес буфера для текста

Параметры

cchTextMax
Значение wParam. Устанавливает максимальное число символов, которое будет скопировано, включая символ завершения ноль-терминатор.
lpszText
Значение lParam. Указывает на буфер, который должен принять текст.

Возвращаемые значения

Возвращаемое значение - скопированное число символов.

Действие по умолчанию
Функция DefWindowProc копирует текст, связанный с окном в заданный буфер и возвращает скопированное число символов.

Замечания

Для элемента редактирования, текст, который будет скопирован - содержит элементы редактирования. Для комбинированного поля, текст - содержание элементов редактирования (или статический текст) часть комбинированного поля. Для кнопки, текст - имя кнопки. Для других окон, текст - заголовок окна. Чтобы копировать текст элемента в окне списка, прикладная программа может использовать сообщение LB_GETTEXT.
Когда сообщение WM_GETTEXT посылается статическому элементу управления со стилем SS_ICON, дескриптор пиктограммы будет возвращен в первых четырех байтах буфера указателя lpszText. Это истинно только тогда, если сообщение WM_SETTEXT использовалось, чтобы установить пиктограмму.

В мощных средствах редактирования, если текст, который будет скопирован, превышает 64КБ, используется сообщение или EM_STREAMOUT или EM_GETSELTEXT.

Смотри также

DefWindowProc, EM_GETSELTEXT, EM_STREAMOUT, GetWindowText, GetWindowTextLength, LB_GETTEXT, WM_GETTEXTLENGTH, WM_SETTEXT

Размещение и совместимость WM_GETTEXT

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Сообщение WM_GETTEXTLENGTH

Прикладная программа посылает сообщение WM_GETTEXTLENGTH, чтобы определить длину текста, в символах, связанного с окном. Длина не включает символа завершения строки (ноль-терминатора).

Синтаксис

 
WM_GETTEXTLENGTH
wParam = 0; // не используется, должен быть ноль
lParam = 0; // не используется, должен быть ноль

Параметры

У этого сообщения нет параметров.

Возвращаемое значение

Возвращаемое значение - длина текста, в символах.

Действие по умолчанию
Функция DefWindowProc возвращает значение длины текста, в символах. При известных условиях, это значение может фактически быть больше, чем длина текста. Для получения дополнитель-ной информации, см. следующий раздел Замечаний.

Замечания

Для элементов редактирования, текст, который будет скопирован - содержание элементов редактирования. Для комбинированного блока, текст - содержание элементов редактирования (или статический текст) часть комбинированного блока. Для кнопки, текст - имя кнопки. Для других окон, текст - заголовок окна. Чтобы определять длину элемента в окне списка, прикладная программа может использовать сообщение LB_GETTEXTLEN.
При известных условиях, функция DefWindowProc возвращает значение, которое является большим, чем фактическая длина текста. Это происходит с некоторыми смесями ANSI и Уникода, и из-за операционной системы, которая учитывает возможное существование символов DBCS внутри текста. Возвращаемое значение, однако, будет всегда, по крайней мере, такого размера, как факти-ческая длина текста; Вы можете, таким образом, всегда использовать его, чтобы определить распре-деление в буфере. Это поведение может случаться тогда, когда прикладная программа использует и функции ANSI и общие диалоги, которые используют Уникод. LB_GETTEXT, или CB_GETLBTEXT, или функцию GetWindowText.

Смотри также

CB_GETLBTEXT, DefWindowProc, GetWindowText, GetWindowTextLength, LB_GETTEXT, LB_GETTEXTLEN, WM_GETTEXT.

Размещение и совместимость WM_GETTEXTLENGTH

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Сообщение WM_INPUTLANGCHANGE

Сообщение WM_INPUTLANGCHANGE посылается самому верхнему действующему окну по-сле того, как было изменено место действия задачи. Оно должно использоваться для создания любые специфических для приложения параметров настройки и передачи их в функцию DefWindowProc, в которую должны быть переданы любые дочерние записи.

Синтаксис

 
WM_INPUTLANGCHANGE
charset = wParam;
hkl = (HKL) lParam;

Параметры

charset
Значение wParam. Определяет набор символов нового расположения символов на клавиатуре.
hkl
Значение lParam. Идентифицирует новое расположение символов на клавиатуре.

Возвращаемые значения

Приложение должно возвратить не нулевое значение, если обрабатывает это сообщение.

Смотри также

DefWindowProc, WM_INPUTLANGCHANGEREQUEST

Размещение и совместимость WM_INPUTLANGCHANGE

Windows NT   Да 
Win95    Да
Win32s    Нет
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Сообщение WM_INPUTLANGCHANGEREQUEST

Сообщение WM_INPUTLANGCHANGEREQUEST извещает окно верхнего уровня прикладной программы, когда пользователь выбирает язык ввода с клавиатуры или изменение языка ввода с клавиатуры при помощи "горячей" клавишей или из меню системных языков. Прикладная программа мо-жет принимать изменение, передавая сообщение в функцию DefWindowProc или отклонять изменение (и предохранять её от происходящего) возвращаясь немедленно.

Синтаксис

 
WM_INPUTLANGCHANGEREQUEST
fSysCharSet = (BOOL) wParam
hkl = (HKL) lParam;

Параметры wParam
Самый младший бит этого параметра установлен, если дескриптор расположения символов на клавиатуре может использоваться с набором символов системы. Другие биты зарезервированы. Например, в Русскоязычной версии Windows 95, этот параметр устанавливает младший бит для дескрипторов расположения символов на клавиатуре для Английского (США) и Русского языка, но сбрасывает для других дескрипторов.
hkl
Значение lParam. Идентифицирует расположение символов на клавиатуре, чтобы переключать их.

Возвращаемые значения

Это сообщение извещает, что ничего не послано в прикладную программу, так что возвращаемое значение игнорируется. Чтобы принимать изменения, прикладная программа должна передать сообщение в DefWindowProc. Чтобы отклонять изменения, прикладная программа должна возвратить нуль без вызова DefWindowProc.

Смотри также

DefWindowProc, WM_INPUTLANGCHANGE

Размещение и совместимость WM_INPUTLANGCHANGEREQUEST

 
Windows NT   Да
Win95    Да
Win32s    Нет
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Сообщение WM_MOVE

Сообщение WM_MOVE передается после того, когда окно будет перемещено. Снтаксис

WM_MOVE 
xPos = (int) LOWORD(lParam); // позиция по горизонтали
yPos = (int) HIWORD(lParam); // позиция по вертикали

Параметры

xPos
Значение младшего байта слова lParam. Устанавливает x-координату левого верхнего угла рабочей области окна.
yPos
Значение старшего слова lParam. Устанавливает y-координату левого верхнего угла рабочей области окна.

Возвращаемые значения

Если программа обрабатывает это сообщение, она должна возвратить ноль.

Замечания

xPos и yPos параметры даны в экранных координатах для перекрывающих и выскакивающих окон и в координатах пользователя - родителя для дочерних окон. Прикладная программа может использовать макрокоманду MAKEPOINTS, чтобы преобразовать параметр lParam для структуры POINTS.

Смотри также

MAKEPOINTS, POINTS

Размещение и совместимость WM_MOVE

Windows NT  Да 
Win95   Да
Win32s   Да
Импортируемая библиотека -
Заголовочный файл  winuser.h
Unicode   Нет
Замечания по платформе Не имеется


Сообщение WM_MOVING

Сообщение WM_MOVING посылается окну, которое пользователь перемещает. Обрабатывая это сообщение, прикладная программа может контролировать размер и позицию перетаскиваемого прямоугольника и, если необходимо, изменять его размер или позицию.

Синтаксис

 
fwSide = wParam;  // Край окна, которое будет перемещено
lprc = (LPRECT) lParam;  // Экранные координаты перетаскиваемого прямоугольника

Параметры

fwSide
Значение wParam. Указывает, который край окна передвигается. Этот параметр может быть комбинацией следующих значений:

  • WMSZ_BOTTOM - Нижний край
  • WMSZ_BOTTOMLEFT - Левый нижний угол
  • WMSZ_BOTTOMRIGHT - Правый нижний угол
  • WMSZ_LEFT - Левый край
  • WMSZ_RIGHT - Правый край
  • WMSZ_TOP - Верхний край
  • WMSZ_TOPLEFT - Верхний левый угол
  • WMSZ_TOPRIGHT - Левый правый угол

lprc
Значение lParam. Адрес структуры RECT с экранными координатами перетаскиваемого прямоугольника. Чтобы изменять размер или позицию перетаскиваемого прямоугольника, прикладная программа должна изменять члены этой структуры.

Возвращаемое значение
Программа должна возвратить ИСТИНУ (TRUE), если она обрабатывает это сообщение.

Смотри также

RECT, WM_MOVE, WM_SIZING

Размещение и совместимость WM_MOVING

Windows NT  Да 
Win95   Да
Win32s   Нет
Импортируемая библиотека -
Заголовочный файл  winuser.h
Unicode   Нет
Замечания по платформе Не имеется


Сообщение WM_NCACTIVATE

Сообщение WM_NCACTIVATE посылается окну, когда его нерабочая область должна быть изменена, чтобы указать активное или неактивное его состояние.

Синтаксис

WM_NCACTIVATE 
fActive = (BOOL) wParam; // новое состояние поля заголовка или пиктограммы

Параметры

fActive
Значение wParam. Устанавливает , когда область заголовка или пиктограмма должны быть изменены, чтобы указать активное или неактивное их состояние. Если активная область заголовка или пиктограмма должны быть выведены на экране, параметр fActive - ИСТИНА (TRUE). Он - ЛОЖЬ(FALSE) для неактивной области заголовка или пиктограммы.

Возвращаемые значения

Когда параметр fActive - ЛОЖЬ(FALSE), прикладная программа должна возвратить ИСТИНА (TRUE), чтобы указать, что Windows должен продолжить обработку значения по умолчанию, или она должно возвратить ЛОЖЬ(FALSE), чтобы предохранить область заголовка или пиктограмму от деактивизации. Когда fActive - ИСТИНА (TRUE), возвращаемое значение игнорируется.

Действие по умолчанию
Функция DefWindowProc выводит область заголовка или заголовок пиктограммы в его активных цветах, когда параметр fActive - ИСТИНА (TRUE) и в его неактивных цветах, когда fActive - ЛОЖЬ(FALSE).

Смотри также

DefWindowProc

Размещение и совместимость WM_NCACTIVATE

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Сообщение WM_NCCALCSIZE

Сообщение WM_NCCALCSIZE посылается тогда, когда размер и позиция рабочей области окна должны быть вычислены. Обрабатывая это сообщение, прикладная программа может управлять содержанием рабочей области окна, когда размер или позиция окна изменяются.

Синтаксис

 
WM_NCCALCSIZE
fCalcValidRects = (BOOL) wParam;  // флажок действующей области
lpncsp = (LPNCCALCSIZE_PARAMS) lParam;  // указатель на размер
     // вычисляемых данных или
lpncsp = (LPRECT) lParam;   // указатель на новые координаты окна

Параметры

fCalcValidRects
Значение wParam. Это Булево значение, если ИСТИНА (TRUE), то определяется, что прикладная программа должна указать, какая часть рабочей области содержит допустимую информацию. Операционная система копирует правильную информацию в указанный район внутри новой рабочей области. Также, если этот параметр - ИСТИНА (TRUE), lParam указывает на структуру NCCALCSIZE_PARAMS.Если этот параметр - ЛОЖЬ(FALSE), прикладная программа не должна указывать допустимую часть рабочей области. Также, если этот параметр - ЛОЖЬ(FALSE), lParam указывает на структуру RECT.
lpncsp

Значение lParam. Если wParam - ИСТИНА (TRUE), lParam указывает на структуру NCCALCSIZE_PARAMS, которая содержит информацию, которую прикладная программа может использовать, чтобы вычислить новый размер и позицию прямоугольника пользователя. Если wParam - ЛОЖЬ(FALSE), lParam указывает на структуру RECT, которая содержит новые координаты окна, которое было перемещено или изменено. Этот параметр эквивалентен rgrc [0] из структуры NCCALCSIZE_PARAMS.

Возвращаемые значения

Если параметр fCalcValidRects - ЛОЖЬ(FALSE), прикладная программа должна возвратить нуль. Если fCalcValidRects - ИСТИНА (TRUE), прикладная программа может возвратить нуль или допустимую комбинацию следующих значений:
  • WVR_ALIGNTOP, WVR_ALIGNLEFT, WVR_ALIGNBOTTOM, WVR_ALIGNRIGHT - Эти значения, используемые в комбинаци-ях, определяют, что рабочая область окна должна сохраниться и выравниваться соот-ветственно относительно новой позиции окна. Например, чтобы выровнять рабочую область по левому нижнему углу, возвратите значения WVR_ALIGNLEFT и WVR_ALIGNTOP.
  • WVR_HREDRAW, WVR_VREDRAW - Эти значения, используемые в комбинации с любыми другими значениями, заставляют окно быть полностью повторно выведенным, если прямоугольник пользователя изменяет размер горизонтально или вертикально. Эти значения подобны стилям класса CS_HREDRAW и CS_VREDRAW.
  • WVR_REDRAW - Это значение вынуждает повторно вывести все окно. Это - комбинация значений WVR_HREDRAW и WVR_VREDRAW.
  • WVR_VALIDRECTS - Это значение указывает, что, при возврате из WM_NCCALCSIZE, прямоугольники, заданные элементами rgrc [1] и rgrc [2] структуры NCCALCSIZE_PARAMS содержат правильный источник и области адресования прямоугольников, соответственно. Windows объединяет эти прямоугольники, чтобы вычислить область окна, которую нужно сохранить. Windows копирует любую часть изображения окна, которое является внутри исходного прямоугольника и прикрепляет изображение к прямоугольнику назначения. Оба прямоугольника находятся в окне - относительно родительских или экранных координат. Это возвращаемое значение позволяет прикладной программе выполнять более сложные приемы охраны рабочей области, типа центрирования или сохранения подмножества рабочей области.

Если fCalcValidRects - ИСТИНА (TRUE), а программа возвращает нуль, старая рабочая область сохраняется и выравнивается по левому верхним углом новой рабочей области.

Действия по умолчанию

Окно может быть повторно выведено, в зависимости от того, установлен ли стиль класса CS_HREDRAW или CS_VREDRAW. Это - по умолчанию, совместимая в обратном направлении обработка этого сообщения функцией DefWindowProc (в дополнение к обычному вычислению прямоугольника пользователя, описанному в предшествующей таблице).

Смотри также

DefWindowProc, MoveWindow, SetWindowPos, NCCALCSIZE_PARAMS, RECT

Размещение и совместимость WM_NCCALCSIZE

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Сообщение WM_NCCREATE

Сообщение WM_NCCREATE посылается до сообщения WM_CREATE, когда происходит начало создания окна.

Синтаксис

 
WM_NCCREATE
lpcs = (LPCREATESTRUCT) lParam; // данные инициализации

Параметры

lpcs
Значение wParam. Указывает на структуру CREATESTRUCT для окна.

Возвращаемые значения

Если приложение обрабатывает это сообщение, оно возвращает значение ИСТИНА (TRUE), чтобы продолжить создание окна. Если программа возвращает значение ЛОЖЬ(FALSE), функция CreateWindow или CreateWindowEx возвратит дескриптор ПУСТО (NULL).

Действия по умолчанию

Функция DefWindowProc возвращает значение ИСТИНА (TRUE).

Смотри также

CreateWindow, CreateWindowEx, DefWindowProc, CREATESTRUCT, WM_CREATE

Размещение и совместимость WM_NCCREATE

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Сообщение WM_NCDESTROY

Сообщение WM_NCDESTROY информирует окно, что его нерабочая область разрушается. Функция DestroyWindow посылает окну сообщение WM_NCDESTROY после сообщения WM_DESTROY. WM_DESTROY используется, чтобы освободить память, в которой помещен объект, связанный с окном.

Синтаксис

WM_NCDESTROY 

Параметры

У этого сообщения нет параметров

Возвращаемые значения

Если приложение обрабатывает это сообщение, оно должно возвратить ноль.

Замечания

Это сообщение освобождает любую память, внутренне распределенную для окна.

Смотри также

DestroyWindow,WM_DESTROY, WM_NCCREATE

Размещение и совместимость WM_NCDESTROY

Windows NT  Да 
Win95   Да
Win32s   Да
Импортируемая библиотека -
Заголовочный файл  winuser.h
Unicode   Нет
Замечания по платформе Не имеется


Сообщение WM_PARENTNOTIFY

Сообщение WM_PARENTNOTIFY посылается родителю дочернего окна, когда дочернее окно создается или разрушается, или когда пользователь щелкает мышью по кнопке мыши, в то время как курсор - над дочерним окном. Когда дочернее окно создается, система посылает WM_PARENTNOTIFY как раз перед функцией CreateWindow или CreateWindowEx, которая создает условия для возвращения окна в прежнее состояние. Когда дочернее окно разрушается, Windows посылает сообщение перед любым действием, которое происходит для уничтожения окна.

Синтаксис

WM_PARENTNOTIFY 
fwEvent = LOWORD(wParam); // флажки события
idChild = HIWORD(wParam); // идентификатор дочернего окна
lValue = lParam; // дочерний дескриптор или координаты курсора

Параметры

fwEvent
Значение младшего байта слова wParam. Определяет событие, о котором сообщают родителю. Этот параметр может быть одним из следующих значений:
  • WM_CREATE - Создается дочернее окно.
  • WM_DESTROY - Дочернее окно разрушается.
  • WM_LBUTTONDOWN - Пользователь поместил курсор над дочерним окном и щелкнул левой кнопкой мыши.
  • WM_MBUTTONDOWN - Пользователь поместил курсор над дочерним окном и щелкнул средней кнопкой мыши.
  • WM_RBUTTONDOWN - Пользователь поместил курсор над дочерним окном и щелкнул правой кнопкой мыши.

idChild
Значение старшего слова wParam. Если параметр fwEvent имеет значение WM_CREATE ИЛИ WM_DESTROY, idChild устанавливает идентификатор дочернего окна. Иначе, idChild не определен.
lValue
Содержит дескриптор дочернего окна, если параметр fwEvent имеет значение WM_CREATE или WM_DESTROY; иначе, lValue содержит x- и y-координаты курсора. x-координата в младшем слове, а y-координата находится в старшем слове.

Возвращаемые значения

Если программа обрабатывает это сообщение, она должна возвратить ноль.

Замечания

Это сообщение также посылается всем окнам предкам дочернего окна, включая окно верхнего уровня. Все дочерние окна, за исключением тех окон, которые имеют расширенный стиль WS_EX_NOPARENTNOTIFY, посылают это сообщение своим родительским окнам. По умолчанию, дочерние окна в диалоговом окне имеют WS_EX_NOPARENTNOTIFY стиль, если функция CreateWindowEx не вызвана, чтобы создать дочернее окно без этого стиля.

Смотри также

CreateWindow, CreateWindowEx, WM_CREATE, WM_DESTROY, WM_LBUTTONDOWN, WM_MBUTTONDOWN, WM_RBUTTONDOWN

Размещение и совместимость WM_PARENTNOTIFY

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Сообщение WM_POWER

Сообщение WM_POWER посылается тогда, когда система, обычно персональный компьютер c батарейным питанием, собирается вводить режим приостановки работы. Сообщение WM_POWER устаревшее. Оно предусматривается, чтобы упростить переносимость 16-разрядных прикладных программ базирующихся на Windows. Новые базирующиеся на Win32 прикладные программы должны использовать сообщение WM_POWERBROADCAST.

Синтаксис

 
WM_POWER
fwPowerEvt = wParam; // уведомительное сообщение о понижении питания

Параметры

fwPowerEvt
Значение wParam. Определяет уведомительное сообщение о понижении питания. Этот параметр может быть одно из следующих значений:
  • PWR_CRITICALRESUME - Указывает на то, что система возобновляет действие по-сле ввода режима приостановки работы без первоначальной посылки уведомительного сообщения PWR_SUSPENDREQUEST прикладной программе. Прикладная программа должна выполнить любые необходимые действия восстановления.
  • PWR_SUSPENDREQUEST - Указывает, что система собирается ввести режим приостановки работы.
  • PWR_SUSPENDRESUME - Указывает, что система возобновляет работу, после введения режима приостановки работы нормально, то есть система послала уведомительное сообщение PWR_SUSPENDREQUEST прикладной программе прежде, чем работа системы была приостановлена. Прикладная программа должна выполнить любые необходимые действия восстановления.

Возвращаемые значения

Значение, возвращаемое прикладной программой зависит от значения параметра wParam. Если wParam - PWR_SUSPENDREQUEST, возвращаемое значение - PWR_FAIL, чтобы предохранить систему от ввода состояния приостановки работы; иначе, это - PWR_OK. Если wParam - PWR_SUSPENDRESUME или PWR_CRITICALRESUME, возвращаемое значение нулевое.

Замечания

Это сообщение посылается только прикладной программе, которая исполняется системой и соответствует техническим требованиям Улучшенной системы питания (APM) базисная системы ввода -вывода (BIOS). Сообщение посылается драйвером управления питанием каждому окну, возвращен-ному функцией EnumWindows. Режим приостановки работы - состояние, в котором происходит самая большая эффективность сбережения мощности, но все действующие данные и параметры сохраняются. Память с произвольной выборкой (RAM) сохраняет свое содержание, но многие устройства, вероятно, будут выключены.

Смотри также EnumWindows, WM_POWERBROADCAST

Размещение и совместимость WM_POWER

Windows NT  Да 
Win95   Да
Win32s   Да
Импортируемая библиотека -
Заголовочный файл  winuser.h
Unicode   Нет
Замечания по платформе Не имеется


Сообщение WM_QUERYDRAGICON

Сообщение WM_QUERYDRAGICON посылается свернутому (иконизированному) окну. Окно собирается сделать перемещение при помощи пользователя, но не определяет пиктограмму для своего класса. Прикладная программа может возвратить значение дескриптора пиктограммы или курсора. Система отображает этот курсор или пиктограмму, в то время как пользователь перетаскивает пиктограмму.

Синтаксис

 
WM_QUERYDRAGICON

Параметры

У этого сообщения нет параметров.

Возвращаемые значения

Прикладная программа должна возвратить дескриптор курсора или пиктограммы, которую Windows должен показывать, в то время, когда пользователь перетаскивает пиктограмму. Курсор или пиктограмма должны быть совместимы с разрешающей способностью дисплейного устройства. Если прикладная программа возвращает ПУСТО (NULL), система отображает заданный по умолчанию курсор.

Действия по умолчанию

Функция DefWindowProc возвращает значение дескриптора заданного по умолчанию курсора.

Замечания

Когда пользователь перетаскивает пиктограмму окна без определения класса пиктограммы, Windows меняет пиктограмму на, заданный по умолчанию, курсор. Если прикладная программа требует, чтобы в ходе перемещения отображался отличающийся от системного курсор, она должна возвратить дескриптор курсора или пиктограммы, которые совместимы по разрешающей способности с дисплейным устройством. Если прикладная программа возвращает дескриптор цветного курсора или пиктограммы, система преобразует курсор или пиктограмму в чернобелую. Прикладная программа может вызывать функцию LoadCursor или LoadIcon, чтобы загрузить курсор или пиктограмму из ресурсов своего исполняемого (.EXE) файла и возвратить обратно этот дескриптор.

Смотри также

DefWindowProc, LoadCursor, LoadIcon

Размещение и совместимость WM_QUERYDRAGICON

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Сообщение WM_QUERYOPEN

Сообщение WM_QUERYOPEN посылается пиктограмме тогда, когда пользователь запрашивает, чтобы окно было восстановлено в его предыдущем размере и позиции.

Синтаксис

WM_QUERYOPEN

Параметры

У этого сообщения нет параметров.

Возвращаемые значения

Если пиктограмма может быть открыта, прикладная программа, которая обрабатывает это сообщение, должен возвратить значение ИСТИНА (TRUE); иначе, она должна возвратить значение ЛОЖЬ (FALSE), чтобы предотвратить открытие пиктограммы.

Действия по умолчанию
Функция DefWindowProc возвращает значение ИСТИНА (TRUE).

Замечания

При обработке этого сообщения, прикладная программа не должна выполнять какое-либо действие, которое вынуждает стать активным или изменить фокус (например, создавать диалоговое окно).

Смотри также

DefWindowProc, LoadCursor, LoadIcon

Размещение и совместимость WM_QUERYOPEN

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Сообщение WM_SETICON

Прикладная программа посылает сообщение WM_SETICON, чтобы сопоставить новую большую или маленькую пиктограмму с окном. Windows выводит большую пиктограмму, когда окно свер-нуто (минимизировано) и маленькую пиктограмму в области заголовка окна.

Синтаксис

WM_SETICON 
wParam = (WPARAM) fType; // тип пиктограммы
lParam = (LPARAM) (HICON) hicon; // дескриптор пиктограммы

Параметры fType
Значение wParam. Определяет устанавливаемый тип пиктограммы. Этот параметр может быть одним из следующих значений:

Значение  Что оно означает
ICON_BIG  Установку большой пиктограммы для окна.
ICON_SMALL Установку маленькой пиктограммы для окна.

hicon
Значение lParam. Идентифицирует новую большую или маленькую пиктограмму. Если этот параметр - ПУСТО (NULL), пиктограмма, обозначенная в параметре fType, удаляется.

Возвращаемые значения

Возвращаемое значение - дескриптор предыдущей большой или маленькой пиктограммы, в зависимости от значения fType. Оно - ПУСТО (NULL), если окно предварительно не имело никакой пиктограммы типа, обозначенного fType.

Действия по умолчанию

Функция DefWindowProc возвращает значение дескриптора предыдущей большой или маленькой пиктограммы, связанной с окном, в зависимости от значения fType.

Смотри также

DefWindowProc, WM_GETICON

Размещение и совместимость WM_SETICON

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Сообщение WM_SETTEXT

Прикладная программа посылает сообщение WM_SETTEXT, чтобы установить текст окна.

Синтаксис

WM_SETTEXT 
wParam = 0; // не используется, должен быть ноль
lParam = (LPARAM)(LPCTSTR)lpsz; // адрес строки оконного текста

Параметры

lpsz Значение lParam. Указывает на строку с символом нуля в конце, которая является текстом окна.

Возвращаемые значения

Возвращаемое значение - ИСТИНА (TRUE), если текст установлен. Оно - ЛОЖЬ (FALSE) (для средств редактирования), LB_ERRSPACE (для окна списка), или CB_ERRSPACE (для комбинированного блока), если недостаточно доступного пространства, чтобы установить текст в полях редак-тирования. Оно - CB_ERR, если это сообщение послано комбинированному блоку без средств редактирования.

Действия по умолчанию

Функция DefWindowProc устанавливает и отображает текст окна.

Замечания

Для средств редактирования, текст - содержание средств редактирования. Для комбинированного блока, текст - содержание части средств редактирования комбинированного блока. Для кнопки, текст - имя кнопки. Для других окон, текст - заголовок окна. Это сообщение не изменяет текущий выбор в окне списка комбинированного блока. Прикладная программа должна использовать сообщение CB_SELECTSTRING, чтобы выбрать элемент в окне списка, которое соответствует тексту в средствах редактирования.

Смотри также

DefWindowProc, CB_SELECTSTRING, WM_GETTEXT

Размещение и совместимость WM_SETTEXT

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Сообщение WM_SETTINGCHANGE

Система посылает сообщение WM_SETTINGCHANGE всем окнам верхнего уровня, когда функция SystemParametersInfo изменяет установки на системном уровне. Система посылает это сообщение только тогда, если вызывающая функция SystemParametersInfo устанавливает флажок SPIF_SENDCHANGE. Прикладная программа может посылать WM_SETTINGCHANGE всем окнам верхнего уровня, когда она делает изменения для параметров системы. Например, Вы можете посылать это сообщение после обращения к функциям WriteProfileString, WriteProfileSection или SetLocaleInfo, или после создания изменений для параметров системы в системном реестре.Сообщение WM_SETTINGCHANGE - то же самое, что и старое сообщение WM_WININICHANGE.

Синтаксис

 
WM_SETTINGCHANGE
wParam = wFlag; // флажок параметров на системном уровне
lParam = (LPARAM) (LPCTSTR) pszSection; // наименование раздела или реестра

Параметры

wFlag
Значение wParam. Когда система посылает сообщению в результате обращения к System-ParametersInfo, этот параметр - флажок, который указывает параметр системы, который был изменен. О списке значений, см. функцию SystemParametersInfo. Когда прикладная программа посылает со-общение, этот параметр должен быть ПУСТО (NULL).
pszMetrics
Значение lParam. Указатель на строку, которая указывает область, содержащую параметр системы который был изменен. Например, эта строка может быть имя ключа реестра или имя раздела в файле WIN.INI. Этот параметр не особенно полезен в определении, какой изменился параметр системы. Например, когда строка - имя системного реестра, она обычно указывает только вершину в системном реестре, а не весь путь. Кроме того, некоторые прикладные программы посылают это сообщение с установкой параметра lParam в ПУСТО (NULL). Вообще, когда Вы принимаете это сообщение, Вы должны проверять и перезагружать любые настройки параметров системы, которые используются вашей прикладной программой.

Возвращаемые значения

Если вы обрабатываете это сообщение, возвращаемое значение - ноль.

Замечания

Чтобы послать сообщение WM_SETTINGCHANGE всем окнам верхнего уровня, используйте функцию SendMessage с параметром hwnd установленным в HWND_BROADCAST. Вызовите функции, которые изменяют файл WIN.INI, который может быть отображен взамен системного реестра. Это отображение происходит тогда, когда файл WIN.INI и изменяемый раздел установлены в системном реестре под следующими ключами:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\IniFileMapping

Изменение в ячейке памяти не имеет никакого влияния на поведении этого сообщения.

Смотри также

SendMessage, SetLocaleInfo, SystemParametersInfo, WM_WININICHANGE, WriteProfileSection, WriteProfileString

Размещение и совместимость WM_SETTINGCHANGE

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    WinNT
Замечания по платформе  Не имеется


Сообщение WM_SHOWWINDOW

Сообщение WM_SHOWWINDOW посылается окну тогда, когда окно собирается быть скрытым или видимым.

Синтаксис

WM_SHOWWINDOW 
fShow = (BOOL) wParam; // флажок показать/скрыть
fnStatus = (int) lParam; // флажок состояния

Параметры

fShow
Значение wParam. Определяет, показывается ли окно. ИСТИНА (TRUE), если окно показывается или ЛОЖЬ(FALSE), если окно скрывается.
fnStatus
Значение lParam. Определяет состояние показываемого окна. Параметр fnStatus нулевой, если сообщение послано из-за обращения к функции ShowWindow; иначе, fnStatus - одно из следующих значений:

  • SW_OTHERUNZOOM - Окно раскрывается, потому что развернутое окно было восстановлено или свернуто(минимизировано).
  • SW_OTHERZOOM - Окно покрывается другим окном, которое было развернуто.
  • SW_PARENTCLOSING - Окно владельца окна свертывается.
  • SW_PARENTOPENING - Окно владельца окна восстанавливается.

Возвращаемые значения

Если программа обрабатывает это сообщение, она должна возвратить ноль.

Действия по умолчанию

Функция DefWindowProc скрывает или показывает окно, как установлено в соответствии с сообщением.

Замечания

Если окно, когда оно создается, имеет стиль WS_VISIBLE, окно принимает это сообщение после того, как оно создано, но прежде, чем оно появится. Окно также принимает это сообщение, когда его состояние видимости изменено функцией ShowWindow или ShowOwnedPopups. Сообщение WM_SHOWWINDOW не посылается при следующих обстоятельствах:
  • Когда верхнего уровня, перекрывающее окно создано с WS_MAXIMIZE или WS_MINIMIZE стилем.
  • Когда установлен флажок SW_SHOWNORMAL в обращении к функции ShowWindow.

Смотри также

DefWindowProc, ShowOwnedPopups, ShowWindow

Размещение и совместимость WM_SHOWWINDOW

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Сообщение WM_SIZE

Сообщение WM_SIZE посылается окну после того, как его размер изменился.

Синтаксис

WM_SIZE 
fwSizeType = wParam; // флажок изменения размеров
nWidth = LOWORD(lParam); // ширина рабочей области
nHeight = HIWORD(lParam); // высота рабочей области

Параметры

fwSizeType
Значение wParam. Определяет тип запрошенного изменения размеров. Этот параметр может принимать одно из следующих значений:

  • SIZE_MAXHIDE - Сообщение посылается всем выскакивающим окнам, когда развернуто некоторое другое окно.
  • SIZE_MAXIMIZED - Окно было развернуто.
  • SIZE_MAXSHOW - Сообщение посылается всем выскакивающим окнам, когда некоторое другое окно было восстановлено в его прежних размерах.
  • SIZE_MINIMIZED - Окно было свернуто(минимизировано).
  • SIZE_RESTORED - Окно было изменено, но ни одно значение SIZE_MINIMIZED ни SIZE_MAXIMIZED не применяется.

nWidth
Значение младшего слова lParam. Устанавливает новую ширину рабочей области.
nHeight
Значение старшего слова lParam. Устанавливает новую высоту рабочей области.

Возвращаемые значения

Если программа обрабатывает это сообщение, она должна возвратить ноль.

Замечания

Если функция SetScrollPos или MoveWindow вызвана для дочернего окна в результате сообщения WM_SIZE, параметр bRedraw должен отличаться от нуля, чтобы заставить окно быть перекрашенным. Хотя ширина и высота окна - 32-разрядные значения, параметры nWidth и nHeight сообщения WM_SIZE содержат только младшие 16 битов.

Смотри также

MoveWindow, SetScrollPos

Размещение и совместимость WM_SIZE

Windows NT  Да 
Win95   Да
Win32s   Да
Импортируемая библиотека -
Заголовочный файл  winuser.h
Unicode   Нет
Замечания по платформе Не имеется


Сообщение WM_SIZING

Сообщение WM_SIZING посылается окну, у которого пользователь изменяет размеры. Обрабатывая это сообщение, прикладная программа может контролировать размер и позицию перетаски-ваемого прямоугольника и, если необходимо, изменять его размер или позицию.

Синтаксис

fwSide = wParam;   // край устанавливаемого по размеру окна 
lprc = (LPRECT) lParam;   // экранные координаты перетаскиваемого прямоугольника

Параметры

fwSide
Значение wParam. Указывает, который край окна устанавливается по размеру. Этот параметр может быть комбинацией следующих значений:

  • WMSZ_BOTTOM - Нижний край
  • WMSZ_BOTTOMLEFT - Угол левой нижней части
  • WMSZ_BOTTOMRIGHT - Угол правой нижней части
  • WMSZ_LEFT - Левый край
  • WMSZ_RIGHT - Правый край
  • WMSZ_TOP - Верхний край
  • WMSZ_TOPLEFT - Угол левой верхней части
  • WMSZ_TOPRIGHT - Угол правой верхней части

lprc
Адрес структуры RECT с экранными координатами перетаскиваемого прямоугольника. Чтобы изменять размер или позицию перетаскивающегося прямоугольника, прикладная программа должна изменить члены этой структуры.

Возвращаемые значения

Прикладная программа должна возвратить ИСТИНА (TRUE), если она обрабатывает это сообщение.

Смотри также

RECT, WM_MOVING, WM_SIZE

Размещение и совместимость WM_SIZING

Windows NT  Да 
Win95   Да
Win32s   Нет
Импортируемая библиотека -
Заголовочный файл  winuser.h
Unicode   Нет
Замечания по платформе Не имеется


Сообщение WM_STYLECHANGED

Сообщение WM_STYLECHANGED посылается окну, если после функции SetWindowLong изменилось один или большее количество стилей окна.

Синтаксис

WM_STYLECHANGED 
wStyleType = wParam;  // расширенные или не расширенные стили
lpss = (LPSTYLESTRUCT) lParam;  // структура, содержащая новые стили

Параметры

wStyleType
Значение wParam. Определяет, изменились ли расширенные или нерасширенные стили окна. Этот параметр может быть комбинацией следующих значений:

  • GWL_EXSTYLE - Расширенные стили окна изменились.
  • GWL_STYLE - Нерасширенные стили окна изменились.

lpss
Значение lParam. Указывает на структуру STYLESTRUCT, которая содержит новые стили для окна. Прикладная программа может исследовать стили, но не может изменять их.

Возвращаемые значения

Прикладная программа должна возвратить нуль, если она обрабатывает это сообщение.

Смотри также

SetWindowLong, STYLESTRUCT, WM_STYLECHANGING

Размещение и совместимость WM_STYLECHANGED

Windows NT  Да 
Win95   Да
Win32s   Да
Импортируемая библиотека -
Заголовочный файл  winuser.h
Unicode   Нет
Замечания по платформе Не имеется


Сообщение WM_STYLECHANGING

Сообщение WM_STYLECHANGING посылается окну, когда функция SetWindowLong собирается изменить один или большее количество стилей окна.

Синтаксис

WM_STYLECHANGING 
wStyleType = wParam;   // расширенный и не расширенный стили
lpss = (LPSTYLESTRUCT) lParam;    // структура, содержащая новые стили

Параметры

wStyleType
Значение wParam. Определяет, изменились ли расширенные или нерасширенные стили окна. Этот параметр может быть комбинацией следующих значений:

  • GWL_EXSTYLE - Расширенные стили окна изменяются.
  • GWL_STYLE - Нерасширенные стили окна изменяются.

lpss
Значение lParam. Указывает на структуру STYLESTRUCT, которая содержит предложенные новые стили для окна. Прикладная программа может исследовать стили и, в случае необходимости, изменять их.

Возвращаемые значения

Прикладная программа должна возвратить нуль, если она обрабатывает это сообщение.

Смотри также

SetWindowLong, STYLESTRUCT, WM_STYLECHANGED

Размещение и совместимость WM_STYLECHANGING

Windows NT  Да 
Win95   Да
Win32s   Да
Импортируемая библиотека -
Заголовочный файл  winuser.h
Unicode   Нет
Замечания по платформе Не имеется


Сообщение WM_USERCHANGED

Сообщение WM_USERCHANGED посылается всем окнам, после того как пользователь вошел или вышел из системы. Когда пользователь входит или выходит из системы, система модифицирует специфические для пользователя параметры настройки. Система посылает это сообщение немедленно после модифицирования параметров настройки.

Синтаксис

 
WM_USERCHANGED
wParam = 0; // не используется, должно быть - ноль
lParam = 0; // не используется, должно быть - ноль

Возвращаемые значения

Прикладная программа должна возвратить нуль, если она обрабатывает это сообщение.

Размещение и совместимость WM_USERCHANGED

Windows NT  Да 
Win95   Да
Win32s   Нет
Импортируемая библиотека -
Заголовочный файл  winuser.h
Unicode   Нет
Замечания по платформе Не имеется


Сообщение WM_WINDOWPOSCHANGED

Сообщение WM_WINDOWPOSCHANGED посылается окну, чей размер, позиция, или место в Z-последовательности изменились в результате обращения к функции SetWindowPos или другой функции управления окном.

Синтаксис

WM_WINDOWPOSCHANGED 
lpwp = (LPWINDOWPOS) lParam; // указывает на данные о размере и позиции

Параметры

lpwp
Значение lParam. Указывает на структуру WINDOWPOS, которая содержит информацию относительно нового размера окна и позиции.

Возвращаемые значения

Если программа обрабатывает это сообщение, то она должна возвратить ноль.

Действия по умолчанию

Функция DefWindowProc посылает окну сообщения WM_SIZE и WM_MOVE.

Замечания

Сообщения WM_SIZE и WM_MOVE не посылаются, если прикладная программа обрабатывает сообщение WM_WINDOWPOSCHANGED без вызова DefWindowProc. Это более эффективно выполнит любое перемещение или обработку изменения размера в течение сообщения WM_WINDOWPOSCHANGED без вызова DefWindowProc.

Смотри также

DefWindowProc, EndDeferWindowPos, SetWindowPos, WINDOWPOS, WM_MOVE, WM_SIZE, WM_WINDOWPOSCHANGING

Размещение и совместимость WM_WINDOWPOSCHANGED

Windows NT  Да 
Win95   Да
Win32s   Да
Импортируемая библиотека -
Заголовочный файл  winuser.h
Unicode   Нет
Замечания по платформе Не имеется


Сообщение WM_WINDOWPOSCHANGING

Сообщение WM_WINDOWPOSCHANGING посылается окну, чей размер, позиция, или место в Z-последовательности собирается измениться в результате обращения к функции SetWindowPos или другой функции управления окна.

Синтаксис

 
WM_WINDOWPOSCHANGING
lpwp = (LPWINDOWPOS) lParam; // указывает на данные о позиции и размере

Параметры

lpw
Значение lParam. Указывает на структуру WINDOWPOS, которая содержит информацию от-носительно нового размера окна и позиции.

Возвращаемые значения

Если программа обрабатывает это сообщение, то она должна возвратить ноль.

Действия по умолчанию

Для окна со стилем WS_OVERLAPPED или WS_THICKFRAME, функция DefWindowProc посылает окну сообщение WM_GETMINMAXINFO. Это делается для того, чтобы проверить правильность нового размера и позиции окна и обеспечить исполнение стилей CS_BYTEALIGNCLIENT и CS_BYTEALIGNWINDOW пользователя. Не передавая WM_WINDOWPOSCHANGING сообщение в функцию DefWindowProc, прикладная программа может отменять эти значения по умолчанию.

Замечания

В то время когда это сообщение обрабатывается, изменяя любое из значений в WINDOWPOS, оно воздействует на новый размер, позицию или место окна в Z-последовательности. Прикладная программа может предотвратить изменения окна, устанавливая или сбрасывая соответствующие биты в элементе флажков WINDOWPOS.

Смотри также

DefWindowProc,EndDeferWindowPos, SetWindowPos, WINDOWPOS, WM_GETMINMAXINFO, WM_MOVE, WM_SIZE, WM_WINDOWPOSCHANGED

Размещение и совместимость WM_WINDOWPOSCHANGING

Windows NT  Да 
Win95   Да
Win32s   Да
Импортируемая библиотека -
Заголовочный файл  winuser.h
Unicode   Нет
Замечания по платформе Не имеется


Сообщение WM_WININICHANGE

WM_WININICHANGE устарело. Оно включено для совместимости с более ранними версиями Windows. Новые прикладные программы должны использовать сообщение WM_SETTINGCHANGE.

Размещение и совместимость WM_WININICHANGE

Windows NT  Да 
Win95   Да
Win32s   Да
Импортируемая библиотека -
Заголовочный файл  winuser.h
Unicode   WinNT
Замечания по платформе Не имеется
  

Сообщение WM_CLOSE

Сообщение WM_CLOSE посылается как сигнал, по которому окно или прикладная программа должны завершить свою работу.

Синтаксис

WM_CLOSE 

Параметры

У этого сообщения нет параметров.

Возвращаемые значения

Если приложение обрабатывает это сообщение, оно должно возвратить ноль.

Действие по умолчанию

Функция DefWindowProc обращается к функции DestroyWindow, чтобы уничтожить окно.

Примечания

Прикладная программа может запросить пользователя о подтверждении, до разрушения окна, в ходе обработки сообщение WM_CLOSE и вызывает функцию DestroyWindow только тогда, если пользователь подтверждает выбор.

Смотри также

DefWindowProc, DestroyWindow

Размещение и совместимость WM_CLOSE

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Сообщение WM_COMPACTING

Сообщение WM_COMPACTING посылается всем окнам верхнего уровня, когда Windows обнаруживает больше чем 12.5 процентов от системного времени в течение от 30 - до 60-секундного интервала, тратится на уплотнение памяти. Это указывает на то, что недостаточно системной памяти.

Синтаксис

WM_COMPACTING 
wCompactRatio = wParam; // степень сжатия

Параметры

wCompactRatio
Значение wParam. Устанавливает коэффициент текущего времени центрального процессора (ЦП), потраченного Windows на уплотнение памяти, к текущему времени ЦП, потраченному Windows на выполнение других действий. Например, 0x8000 представляет 50 процентов от потраченного ПРОЦЕССОРНОГО ВРЕМЕНИ на уплотнение памяти.

Возвращаемые значения

Если приложение обрабатывает это сообщение, оно должно возвратить ноль.

Замечания

Когда прикладная программа принимает это сообщение, она должна освободить так много памяти, сколько это возможно, принимая во внимание текущий уровень действия прикладной про-граммы и общее количество прикладных программ, запущенных в Windows.

Размещение и совместимость WM_COMPACTING

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Сообщение WM_COPYDATA

Сообщение WM_COPYDATA передается тогда, когда одна программа пересылает данные в другую программу.

Синтаксис

WM_COPYDATA 
wParam = (WPARAM) (HWND) hwnd;   // дескриптор передающего окна
lParam = (LPARAM) (PCOPYDATASTRUCT) pcds;   // указатель на структуру с данными

Параметры

hwnd
Идентифицирует окно, которое передает данные.
pcds
Указывает на структуру COPYDATASTRUCT, которая содержит данные для передачи.

Возвращаемые значения

Если принимающая программа обрабатывает это сообщение, она должна возвратить значение ИСТИНА (TRUE); в противном случае она должна возвратить - ЛОЖЬ (FALSE).

Замечания

Для передачи этого сообщения программа должна использовать функцию SendMessage, а не функцию PostMessage. Данные, предназначенные для передачи, не должны содержать указателей или других ссылок на объекты, не доступные для программы, принимающей эти данные.
До тех пор, пока это сообщение действует, вызванные данные не должны быть изменены другим по-током процесса пересылки. Принимающая программа должна принимать во внимание данные только для чтения. Параметр pcds правилен только в течение обработки сообщения. Принимающая программа не должна освобождать память, вызванную pcds. Если принимающая программа обратилась к данным после возврата значения функцией SendMessage, она должно копировать данные в локальный буфер.

Смотри также

PostMessage, SendMessage, COPYDATASTRUCT

Размещение и совместимость WM_COPYDATA

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Сообщение WM_CREATE

Сообщение WM_CREATE посылается тогда, когда программа запрашивает, вызовом какой функции CreateWindowEx или CreateWindow должно быть создано окно. Оконная процедура нового окна принимает это сообщение после того, как окно создано, но до того, как окно становится видимым. Сообщение посылается перед возвращением значения функцией CreateWindowEx или CreateWindow.

Синтаксис

WM_CREATE 
lpcs = (LPCREATESTRUCT) lParam; // структура с данными создания

Параметры

lParam
Значение lParam. Указывает на структуру CREATESTRUCT, которая содержит информацию относительно создаваемого окна. Члены CREATESTRUCT идентичны параметрам функции CreateWindowEx.

Возвращаемые значения

Если приложение обрабатывает это сообщение, оно возвращает 0, чтобы продолжить создание окна. Если прикладная программа возвращает -1, то окно разрушается, и функция CreateWindowEx или CreateWindow возвращает значение дескриптора ПУСТО (NULL).

Смотри также

CreateWindow, CreateWindowEx, CREATESTRUCT, WM_NCCREATE

Размещение и совместимость WM_CREATE

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется


Сообщение WM_DESTROY

Сообщение WM_DESTROY посылается тогда, когда окно разрушается. Оно посылается оконной процедуре разрушаемого окна после того, как окно удалено с экрана. Это сообщение посылается сначала разрушаемому окну, а затем дочерним окнам (если таковые имеются) когда они разрушаются. В ходе обработки сообщения, оно может быть принято, так как все дочерние окна все еще существуют.

Синтаксис

 WM_DESTROY 

Параметры

У этого сообщения нет параметров.

Возвращаемые значения

Если программа обрабатывает это сообщение, оно должно возвратить ноль.

Замечания

Если разрушаемое окно - часть цепочки окон просмотра буфера обмена (установленное, вызовом функции SetClipboardViewer), окно должно удаляться из цепочки путем обработки функции ChangeClipboardChain перед возвратом из сообщения WM_DESTROY.

Смотри также

ChangeClipboardChain, DestroyWindow, PostQuitMessage, SetClipboardViewer, WM_CLOSE

Размещение и совместимость WM_DESTROY

Windows NT   Да 
Win95    Да
Win32s    Да
Импортируемая библиотека -
Заголовочный файл   winuser.h
Unicode    Нет
Замечания по платформе  Не имеется