我很想知道存储this指针的最佳/常用方法WndProc.我知道几种方法,但据我所知,每种方法都有其自身的缺点.我的问题是:
有哪些不同的方式来生成这种代码:
CWindow::WndProc(UINT msg, WPARAM wParam, LPARAM)
{
this->DoSomething();
}
Run Code Online (Sandbox Code Playgroud)
我可以想到Thunks,HashMaps,Thread Local Storage和Window User Data结构.
每种方法的优点/缺点是什么?
代码示例和建议获得的分数.
这纯粹是出于好奇心.使用MFC之后,我一直想知道它是如何工作的,然后开始考虑ATL等.
编辑:我可以HWND在窗口过程中有效使用的最早的地方是什么?它记录为WM_NCCREATE- 但如果您实际进行实验,那不是第一个发送到窗口的消息.
编辑: ATL使用thunk访问此指针.MFC使用HWNDs 的哈希表查找.