WM_NOTIFY 메시지
이벤트가 발생했거나 컨트롤에 일부 정보가 필요한 경우 공용 컨트롤에서 부모 창으로 보냅니다.
매개 변수
-
wParam
-
메시지를 보내는 공용 컨트롤의 식별자입니다. 이 식별자는 고유하지 않을 수 있습니다. 애플리케이션은 컨트롤을 식별하기 위해 NMHDR 구조체(lParam 매개 변수로 전달됨)의 hwndFrom 또는 idFrom 멤버를 사용해야 합니다.
-
lParam
-
알림 코드 및 추가 정보가 포함된 NMHDR 구조체에 대한 포인터입니다. 일부 알림 메시지의 경우 이 매개 변수는 첫 번째 멤버로 NMHDR 구조체가 있는 더 큰 구조체를 가리킵니다.
반환 값
달리 지정하는 알림 메시지를 제외하고 반환 값은 무시됩니다.
설명
메시지의 대상은 컨트롤 부모의 HWND여야 합니다. 이 값은 다음 예와 같이 GetParent를 사용하여 가져올 수 있습니다. 여기서 m_controlHwnd는 컨트롤 자체의 HWND입니다.
NMHDR nmh;
nmh.code = CUSTOM_SELCHANGE; // Message type defined by control.
nmh.idFrom = GetDlgCtrlID(m_controlHwnd);
nmh.hwndFrom = m_controlHwnd;
SendMessage(GetParent(m_controlHwnd),
WM_NOTIFY,
nmh.idFrom,
(LPARAM)&nmh);
애플리케이션은 이전 예에서 사용자 지정 컨트롤이 보낸 알림 메시지를 처리하는 다음 예와 같이 부모 창의 창 프로시저에서 메시지를 처리합니다.
INT_PTR CALLBACK DlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_NOTIFY:
switch (((LPNMHDR)lParam)->code)
{
case CUSTOM_SELCHANGE:
if (((LPNMHDR)lParam)->idFrom == IDC_CUSTOMLISTBOX1)
{
... // Respond to message.
return TRUE;
}
break;
... // More cases on WM_NOTIFY switch.
break;
}
... // More cases on message switch.
}
return FALSE;
}
주로 오랫동안 API에 있었던 일부 알림은 WM_COMMAND 메시지로 전송됩니다. 자세한 내용은 컨트롤 메시지를 참조하세요.
메시지 처리기가 대화 상자 프로시저에 있는 경우 DWL_MSGRESULT와 함께 SetWindowLong 함수를 사용하여 반환 값을 설정해야 합니다.
Windows Vista 이상 시스템의 경우 프로세스 간에 WM_NOTIFY 메시지를 보낼 수 없습니다.
많은 알림이 ANSI 및 유니코드 형식으로 제공됩니다. WM_NOTIFY 메시지를 보내는 창은 WM_NOTIFYFORMAT 메시지를 사용하여 사용할 형식을 결정합니다. 자세한 내용은 WM_NOTIFYFORMAT을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 |
Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 |
Windows Server 2003 [데스크톱 앱만 해당] |
헤더 |
|