하위 프로세스를 생성하는 win32 기본 응용 프로그램이 있습니다.다른 프로세스에서 HWND의 lpfnWndProc 설정
현재 CreateWindowEx를 사용하여 주 응용 프로그램에서 HWND를 만들고 하위 프로세스를 생성합니다. 그런 다음 자식 프로세스는 FindWindow를 사용하여 HWND를 찾습니다. 자식 프로세스에서이 HWND에 대한 Window 메시지 (예 : WM_SIZE, WM_SETFOCUS 등)를 처리하고 싶습니다. 따라서 자식 프로세스에서 GWLP_WNDPROC 특성을 설정하려고했지만 합리적인 액세스 거부 오류가 발생했습니다.
대신 자식 프로세스에서 직접 HWND를 만드는 것에 대해 생각했지만 창을 클릭하면 주 응용 프로그램이 포커스를 잃어 사용 사례에 적합하지 않습니다.
자식 프로세스가 메시지를 처리하는 동안 주 응용 프로그램에 집중하기 위해 수행해야 할 작업에 대한 제안이 있습니까?
다른 프로세스에서 창 프로 시저를 변경할 수있는 경우에도 하위 프로세스의 함수 포인터가 기본 프로세스에서 유효하지 않기 때문에 도움이되지 않으므로 다음에 메시지를받을 때 주 프로세스가 충돌합니다 . 왜 자식 프로세스가 주 프로세스의 창에 "WM_SIZE 및 WM_SETFOCUS 동작을 변경하십시오"라는 메시지를 보내지 않도록할까요? –
그러면 모든 메시지 처리가 주 응용 프로그램에서 수행되기 때문입니다. 자식 프로세스는 자체 포함되어 항상 연결된 HWND를가집니다. 주 응용 프로그램은 여러 하위 프로세스를 생성 할 수 있습니다. 이상적인 시나리오는 하위 프로세스에서 HWND를 만들지 만 클릭해도 주 응용 프로그램에 집중하지 않는 것입니다. –
나는 당신이 만족스럽게이 일을 할 수 없을 것이라고 생각합니다. 이 전체 계획을 수행하여 해결하려는 문제는 무엇입니까? 더 좋은 방법이있을 수 있습니다. – jcoder