codeheart 위치로그  |  태그  |  미디어로그  |  방명록
icon 자체 MFC 유사 Framework 구축시 HWND 를 CWnd* 로 매칭하기 위한 좋은 방법
개발/VC++ | 2010. 7. 25. 14:16

방법은 물론 많다.
자체 Singleton PropertyMap 을 구축하여 HWND -> CWnd* 로 매핑해도 되고, 사실 이 방법을 써왔다.
또한, MFC 역시 쓰레드 영역마다 이런 맵을 구축하는 것으로 알고 있다.
WINAPI 는 기본적으로 GWLP_USERDATA 라는 것을 hwnd 에 대응하여 소유할 수 있는데, 이를 그런 포인터로 가지는 것도
괜찮은 방법인 것 같다. 여기서는 hwnd 에 App 을 연동했는데 해당 Wnd 클래스에 연동하는게 나을 듯 싶다.
HINSTANCE 에는 USERDATA 넣을 방법이 있는지?

[생성시 연동]
        DemoApp *pDemoApp = (DemoApp *)pcs->lpCreateParams;

        ::SetWindowLongPtrW(
            hwnd,
            GWLP_USERDATA,
            PtrToUlong(pDemoApp)
            );

[참고시 연동]
        DemoApp *pDemoApp = reinterpret_cast<DemoApp *>(static_cast<LONG_PTR>(
            ::GetWindowLongPtrW(
                hwnd,
                GWLP_USERDATA
                )));



arrow 트랙백 | 댓글



관리자  |   글쓰기
BLOG main image
code heart story
분류 전체보기 (74)
생활 (0)
잡담 (8)
컴퓨터 (11)
개발 (52)
Total :
Today :
Yesterday :
rss
위치로그 : 태그 : 방명록 : 관리자
코드하트's Blog is powered by Daum / Designed by plyfly.net