Win32 创建窗口翻车记录
Posted 初吻给了烟灬
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Win32 创建窗口翻车记录相关的知识,希望对你有一定的参考价值。
今天创建窗口的时候,在捕获消息WM_CREATE的时候翻车了,找了好久都没找到,我换另一台电脑上又没出问题,
现分享下:
LRESULT QWnd::WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { if (WM_CREATE == uMsg) { //就是这里,在创建的时候传进来一个this指针,我给写成了 //QWnd* pWnd = (QWnd*)(LPCREATESTRUCT)lParam; //我晕了好久, QWnd* pWnd = (QWnd*)((LPCREATESTRUCT)lParam)->lpCreateParams; if (pWnd) { pWnd->m_hWnd = hWnd; SetWindowLongPtr(hWnd, GWL_USERDATA, (LONG)pWnd); } } QWnd* pWnd = (QWnd*)GetWindowLongPtr(hWnd, GWL_USERDATA); if (pWnd) { const MSGSTRUCT* pMs = pWnd->FindMsg(uMsg,wParam); if (pMs != NULL) { return (pWnd->*(pMs->pfn))(wParam, lParam); } } return DefWindowProc(hWnd, uMsg, wParam, lParam); }
老是出现访问冲突,又找不到哪冲突.晕死了半天.
以上是关于Win32 创建窗口翻车记录的主要内容,如果未能解决你的问题,请参考以下文章
如何替换 OpenOffice 文档窗口/Win32 的内容 记录的解决方案不起作用?
用VS创建一个win32窗口,编译运行都可以,但那个窗口没有显示出来