SetWindowSubclass()를 사용하여 창을 서브 클래 싱하고 내 메시지 처리기를 성공적으로 호출했지만 DefWindowProc()을 호출하여 원래 처리를 위해 메시지를 전달할 때 메시지가 전달되지 않습니다!DefWindowProc()에서 아무것도 전달하지 않는 이유는 무엇입니까?
우리는 Marmalade (크로스 플랫폼 모바일 개발 용 키트)의 확장 프로그램을 작성 중입니다. 특정 플랫폼 용 네이티브 확장을 허용하며 Windows 데스크톱 빌드 용으로 작성합니다. 우리는 메시지 루프에 직접 액세스 할 수는 없지만 메시지를 직접 처리하기 위해 서브 클래 싱 할 수는 있지만 정상적인 처리를 위해 메시지를 다시 마멀레이드에 전달할 수있는 것 같지 않습니다.
예를 들어, 심지어 콜백에서 아무것도하지 않고 있지만 DefWindowProc를 지나온()를 호출하면 여전히 작동하지 않습니다
// Initialization:
const UINT_PTR gSubClassId = NULL;
DWORD_PTR subClassCBData = NULL;
SetWindowSubclass(gMainWindow, CadUtil_WindowCB, gSubClassId, subClassCBData);
...
// Message processing callback.
static LRESULT CALLBACK CadUtil_WindowCB(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData)
{
// Messages are correctly diverted here, but DefWindowProc() below isn't passing them on.
return DefWindowProc(hWnd, message, wParam, lParam);
}
이런 일이 할 수있는 방법 어떤 생각을?
감사합니다.
Rob.