首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

怎样给主窗口的窗口过程传递this指针?解决办法

2012-04-15 
怎样给主窗口的窗口过程传递this指针????!!!自己用API封装的窗口类,窗口过程里有WM_Create。主窗口执行到Cr

怎样给主窗口的窗口过程传递this指针????!!!
自己用API封装的窗口类,窗口过程里有WM_Create。主窗口执行到CreateWindow之后就去执行窗口过程了。而SetWindowLong有需要窗口句柄,需要在CreateWindow之后才能获得。在CreateWindow之后执行不到SetWindowLong,在。这可怎么传递一个this指针?this每次都未被赋值呢

[解决办法]
可以这样:

C/C++ code
hWnd = CreateWindow(...,this);然后在你的窗口消息处理函数中把你的this指针取出来,然后再设置进去:if (message == WM_NCCREATE){   LPCREATESTRUCT pcs = (LPCREATESTRUCT)lParam;   ::SetWindowLongPtr(hWnd, GWLP_USERDATA, (LONG_PTR)pcs->lpCreateParams);   return DefWindowProc(hWnd, message, wParam, lParam);}else{   YourWndClass* thisPtr = (YourWndClass*)GetWindowLongPtr(hWnd, GWLP_USERDATA);   //do you want to do}
[解决办法]
飞鸽传书是开源的
win32SDK自行封装
你可以借鉴一下他是怎么操作的

热点排行