CListCtrl使用技巧

来源:互联网 发布:网络有利有弊 英语翻译 编辑:程序博客网 时间:2024/06/07 07:25

 隐藏一列

//   控制控件的列宽  
  BOOL   CMyListCtrl::OnNotify(WPARAM   wParam,   LPARAM   lParam,   LRESULT*   pResult)    
  {  
          HD_NOTIFY       *pHDN   =   (HD_NOTIFY*)lParam;  
   
                  if((pHDN->hdr.code   ==   HDN_ITEMCHANGINGW   ||   pHDN->hdr.code   ==   HDN_ITEMCHANGINGA)    
                                  &&   pHDN->pitem->cxy   <   80)  
                  {  
                                  *pResult   =   TRUE;                                 //   disable   change  
                                  return   TRUE;                                         //   Processed   message  
                  }  
     
                  return   CListCtrl::OnNotify(wParam,   lParam,   pResult);  
  }  
   
  //禁止所有的列移动  
  BOOL   CMyListCtrl::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);  
  }  
   
  //禁止特定的列移动      
  BOOL   CMyListCtrl::OnNotify(WPARAM   wParam,   LPARAM   lParam,   LRESULT*   pResult)    
  {  
                  HD_NOTIFY       *pHDN   =   (HD_NOTIFY*)lParam;  
   
                  if((pHDN->hdr.code   ==   HDN_BEGINTRACKW   ||   pHDN->hdr.code   ==   HDN_BEGINTRACKA)  
                                  &&   pHDN->iItem   ==   0)                         //   Prevent   only   first   (col#   0)   from   resizing  
                  {  
                                  *pResult   =   TRUE;                                 //   disable   tracking  
                                  return   TRUE;                                         //   Processed   message  
                  }  
     
                  return   CListCtrl::OnNotify(wParam,   lParam,   pResult);  
  }  
  Top

//*****************************************************

if   (pHDN->iItem   ==   0)作用是禁掉第一列的拖动,根据你自己的需要改写0为合适的数字吧
//******************************************

其它 CListCtrl使用技巧
http://blog.csdn.net/lixiaosan/archive/2006/04/07/653563.aspx