CTheListCtrl m_ListCtrl;
我在OnInitialUpdate里面用了 m_ListCtrl.SubClassWindow(myList.m_hWnd),为什么会出错?急!

解决方案 »

  1.   

    myList是什么?是一个CListCtrl吗?对一个已经是MFC的窗口的句柄使用SubClassWindow是不行的. 对于下面的情况是可行的: 一个没有关联任何MFC类的ListCtrl控件,如取自对话框上的控件;你用API函数 创建的 ListCtrl控件.
      

  2.   

    myList.SubclassWindow(GetListCtrl()->GetSafeHWnd());
      

  3.   

    楼上,你有没有搞错啊!
    myList.SubclassWindow(GetListCtrl()->GetSafeHWnd());???
      

  4.   

    我再讲清楚点吧,各个变量的由来:
    CListCtrl *myList = &GetListCtrl();
    CTheListCtrl m_ListCtrl;
    现在要用这行代码:m_ListCtrl.SubclassWindow(myList->m_hWnd),可是出错了,怎么回事?
      

  5.   

    哦,看错了,不过你的命名容易误导……放到OnCreate()里看看。m_ListCtrl.SubclassWindow(GetListCtrl()->GetSafeHWnd());
      

  6.   

    楼上,谢谢你,可是我都试过了,不行的。除OnCreate()和oninitialupdate()外,还可以在那里写呢?
      

  7.   

    你这种方法是不行的,应该从CView来派生你的类。类里包含CMyListCtrl成员, 在CMyView::OnCreate()函数里创建ListCtrl在WM_ONSIZE里 m_mylist.MoveWindow(0,0,cx,cy);这样就是你想要的结果。这样处理的效果跟CListView是一样的