2011-01-22 4 views
2

Windows 호출에 대한 프로그래밍이 처음인데 lpfnWndProc 함수에 매개 변수를 전달하는 방법을 알아 내려고하고 있습니다.Windows에서 창 호출에 매개 변수 전달

HWND hwnd; 
WNDCLASS wc1 = {0}; 

wc1.lpszClassName = TEXT("sample"); 
wc1.hInstance  = 0; 
wc1.hbrBackground = GetSysColorBrush(COLOR_3DFACE); 
wc1.lpfnWndProc = DepthWndProc; 

주 내가 DepthWndProc에게 매개 변수를 전달 할 수 있습니까 wc1.lpfnWndProc = DepthWndProc; 라인 : 나는 다음과 같은 코드가? 그렇다면 구문은 어떻게 생겼습니까?

감사합니다.

+1

여기를 참조하십시오 : http://relisoft.com/win32/winnie.html - Win32 프로그래밍에 대한 좋은 자습서. – yasouser

답변

0

DepthWndProc를 직접 호출하고 해당 매개 변수를 전달할 수 있지만 왜 그렇게 할 수 있습니까? Windows 프로그래밍이 어떻게 작동하는지가 아닙니다.

창에 보낼 메시지가있을 때마다 창에 전화를 걸 수있는 기능이 있습니다.

1

전화를 걸지 않고 여기에 기능 포인터를 지정합니다. 따라서 논증이 전달되지 않습니다.

HWND를 사용하여 추가 상태를 저장해야하는 경우는 드문 일이 아니며, 예를 들어 창 주위에 C++ 클래스 래퍼가 있어야하는 매우 일반적인 요구 사항입니다. 창 핸들 값에서 랩퍼 오브젝트를 검색하는 데 도움이되는 맵 <>을 유지해야합니다. GWLP_USERDATA와 함께 SetWindowLongPtr()을 사용하면 창 생성을 제어하지 않는 경우에도 너무 이상적 일 수 있습니다.