我用 setwindowlong,程序却异常了

解决方案 »

  1.   

    就是用SetWindowLong设置GWL_WNDPROC。你具体是怎么做的?在你的WndProc函数上设置断点调试看看。
      

  2.   

    #define     SubclassWindow(hwnd, lpfn)       \
                  ((WNDPROC)SetWindowLong((hwnd), GWL_WNDPROC, (LPARAM)(WNDPROC)(lpfn)))
    SubclassWindow 和SetWindowLong 没区别
      

  3.   

    switch (message) 
    {
    case WM_CREATE:
    htv = CreateTreeView(hWnd);
    SetWindowLong(htv,GWL_WNDPROC,(LONG)TreeViewProc);
                            .....
      

  4.   

    执行到哪里异常?错误信息是什么?CreateTreeView返回的是有效句柄吗?再在TreeViewProc函数入口设置断点调试看看。