在listview里防止鼠标移动表头需要处理消息并返回TRUE;
在窗口下没问题。
可在对话框下返回TRUE就不成了。
这如何是好

解决方案 »

  1.   

    最好继承CListView,自己处理自己的消息,可以做到不让拖动
      

  2.   

    BOOL CFixedColumnListCtrl::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult) 
    {
    switch (((NMHDR*)lParam)->code)
    {
    case HDN_BEGINTRACKW:
    case HDN_BEGINTRACKA:
    *pResult = TRUE;                // disable tracking
    return TRUE;                    // Processed message
    }

    return CListCtrl::OnNotify(wParam, lParam, pResult);
    }
      

  3.   

    楼上DentistryDoctor朋友的代码是在CListCtrl类的派生类CFixedColumnListCtrl中重载的虚函数OnNotify里添加的。
    请不要给我分了!谢谢!
      

  4.   

    需要设置dialog的返回值SetWindowLong(hDlg,DWL_MSGRESULT,TRUE); return TRUE; API的.
    妈的,微软用SetWindowLong函数保存dialog过程的返回值,真是恶心
      

  5.   

    谢谢大家指点,又学会了一招。特别感谢doon(vecodo) ,正需要API解决的方法。