WTL CWindowImpl 是不是与 CWnd 兼容?
Posted
技术标签:
【中文标题】WTL CWindowImpl 是不是与 CWnd 兼容?【英文标题】:Does WTL CWindowImpl compatible with CWnd?WTL CWindowImpl 是否与 CWnd 兼容? 【发布时间】:2017-06-07 12:46:03 【问题描述】:我有简单的视频播放器。
https://github.com/sailfish009/sample_video
现在我想将它移植到 windows 模板库 9.1。
编辑:已解决,CWindowImpl 的处理程序与 CWnd 的兼容。
//screen = SDL_CreateWindowFrom(this->m_hWnd); //HWND from CWnd previous working code
screen = SDL_CreateWindowFrom(m_hWndClient); //HWND from CWindowImpl
【问题讨论】:
解决了!我在设置宽度和高度时犯了一个错误。 CWindowImpl 中的 HWND 和 CWnd 完全相同。 【参考方案1】:问题问错了。您不寻找兼容性,您只是寻找访问HWND
窗口句柄的方法。
不,这些类是不兼容的,更多的是它们在概念上是不同的。在 ATL/WTL 中,CWindowImpl
是一个实现窗口过程的类。这样的过程通常是一个静态函数,帮助类将其“附加”到 C++ 类,将其连接到特定的瘦窗口包装器,例如CWindow
,提供连接消息处理程序等的简单方法。m_hWndClient
是甚至不是CWindowImpl
的成员,属于WTL 框架窗口相关类。
【讨论】:
以上是关于WTL CWindowImpl 是不是与 CWnd 兼容?的主要内容,如果未能解决你的问题,请参考以下文章
将 CString::GetString() 与 CWnd::SendMessage() 一起使用是不是安全?