相关疑难解决方法(0)

存储此指针以在WndProc中使用的最佳方法

我很想知道存储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 的哈希表查找.

c++ windows oop winapi wndproc

27
推荐指数
5
解决办法
2万
查看次数

标签 统计

c++ ×1

oop ×1

winapi ×1

windows ×1

wndproc ×1