读书人

怎样给主窗口的窗口过程传递this指针?

发布时间: 2012-04-15 18:39:21 作者: rapoo

怎样给主窗口的窗口过程传递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自行封装
你可以借鉴一下他是怎么操作的

读书人网 >VC/MFC

热点推荐