나는 윈도우 생성과 관리를 위해 자신 만의 상용구 코드/라이브러리를 작성하려고한다. 내가 성취하고자하는 것은, 프로그래머가 람다 파라미터를 가진 함수를 호출 할 수 있다는 것입니다. 그런 다음 윈도우 닫기에서 실행될 것입니다. (방법과 마찬가지로 자바 스크립트 JQuery와 이벤트 핸들러를 추가하는 프로그래머를 수 있습니다.) 내가 만들려고하고 구조는 같은 것입니다 : 나는 특정 창에 대한 정보를 보유하고 내 사용자 지정 Window
클래스의 객체 window
이win32 이벤트 후크로부터의 C++ 콜백
- .
- 이 개체는 해당 창의 이벤트 훅을
SetWinEventHook(...)
으로 설정합니다. - 프로그래머는 창 닫기 이벤트 처리기 목록/
vector
에 람다 함수를 추가하는window.close(lambda)
을 호출합니다. - 닫기 이벤트가 발생하면이 훅은 윈도우의 닫기 이벤트 목록에서 콜백을 호출합니다.
나는 interwebs에서 잠시 동안 검색했지만 마지막 단계를 수행 할 방법을 찾지 못했습니다. 이벤트에 후크를 추가 할 수는 있지만,이 후크는 정적이거나 캡쳐가없는 람다 여야하므로 창 개체와 통신 할 수있는 방법이 없습니다. 나는 이것이 어리석은 아이디어라는 것을 의미한다고 생각하지만, 여전히 일종의 예의 바른 방식으로 이것을 구현하는 방법이 있습니까?
SetWinEventHook()을 한 번만 호출하십시오. 콜백은 창 핸들을 제공합니다. 그래서 Window 객체를 찾기 위해 정적'map'가 필요합니다. –
나는 그것에 대해 완전히 명확하지는 않았지만 실제로 SetWinEventHook을 한 번만 호출합니다. 지도에 관해, 그것은 정말로 훌륭한 생각이다! 그것으로 완전한 답을 해 주시겠습니까? 그러면 나는 그것을 "내 질문에 대답했다"고 표시 할 수 있습니다. ;) –
"완료"하는 방법을 모릅니다. 자신의 게시물에서 수행 한 작업을 표시하고 질문을 종료 할 답변으로 표시하십시오. –