TN003: Mapping of Windows Handles to Objects(映射窗口句柄到对象) (转)[@more@]
TN003: Mapping of windows Handles to objects(映射窗口句柄到对象)XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />
摘要:
这篇笔记描述MFC程序支持把窗口对象句柄映射到C++对象中。
1、 可以进行映射的窗口句柄有:
- HWND (CWnd and CWnd-derived classes)
- HDC (CDC and CDC-derived classes)
- HMENU (CMenu)
- HPEN (CGdiObject)
- HBRUSH (CGdiObject)
- HFONT (CGdiObject)
- HBITMAP (CGdiObject)
- HPALETTE (CGdiObject)
- HRGN (CGdiObject)
- HIMAGELIST (CImageList)
- SOCKET (CSocket)
2、 通过FromHandle()可以返回一个临时的C++对象,这个对象在CWinThread::OnIdle()中自动调用DeleteTempMap来清除。
3、 通过Attach()可以使窗口句柄与C++对象永久关联,当离C++对象的作用哉范围时对象的析构函数会自动调Detach(),并释放相应的资源.
4、 两个线程的C++包装对象不能互相访问。当需要传递一个对象给另外一个线程时,需要传递本地(native)句柄,若传送一个C++对象将会引发异常。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-993348/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10752043/viewspace-993348/