wParam и lParam не имеют внутреннего значения. Это просто переменные «полезной нагрузки», которые содержат данные, которые передает каждое сообщение, и их значение (или их отсутствие) изменяется для каждого конкретного сообщения.
Например, в сообщении WM_SETTEXT (которое устанавливает текст окна, например строку заголовка окна), MSDN дает вам следующее:
wParam: этот параметр не используется.
lParam: указатель на завершающуюся нулем строку, которая является текстом окна.
Находясь в WM_SHOWWINDOW (который показывает / скрывает окно), документы показывают это:
wParam:
Указывает, отображается ли окно. Если wParam TRUE, окно показывается. Если wParam ЛОЖЬ, окно скрыто.
LPARAM
Статус отображаемого окна. Если lParam равно нулю, сообщение было отправлено из-за вызова функции ShowWindow; в противном случае lParam является одним из следующих значений.
- SW_OTHERUNZOOM - 4 - Окно открывается, поскольку окно максимизации было восстановлено или свернуто.
- SW_OTHERZOOM - 2 - Окно закрывается другим окном, которое было развернуто.
- SW_PARENTCLOSING - 1 - Окно владельца окна свернуто.
- SW_PARENTOPENING - 3 - Окно владельца окна восстанавливается.
Как видите, стандартного фиксированного значения не существует. Вы даже не можете предположить, что в сообщениях, которые содержат дескриптор окна (hWnd), это будет wParam
, который будет переносить его, в то время как lParam
несет другие данные. Это зависит только от индивидуального сообщения.