首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

CListCtrl 设置了某行=0隐藏起来,怎么限制鼠标再拖动改行

2012-04-17 
CListCtrl 设置了某行0隐藏起来,如何限制鼠标再拖动改行?1)在小CListCtrl 扩展控件重写OnNotify()消息,可

CListCtrl 设置了某行=0隐藏起来,如何限制鼠标再拖动改行?
1)在小CListCtrl 扩展控件重写OnNotify()消息,可能这个类已经是重新绘制了边框和颜色的原因
导致 鼠标拖动变体栏,窗口就退出


2)改在CListCtrl 的子类CHeaderCtrl 里重写OnNotify()消息,, 但是不起作用。还是能拖拉
BOOL CHeaderCtrlCl::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult) //禁止List控件列与列之间的拖拉
{  

  HD_NOTIFY *phdn = (HD_NOTIFY *)lParam;

  if((phdn->hdr.code==HDN_BEGINTRACKA || phdn->hdr.code==HDN_BEGINTRACKW )
  && (phdn->iItem==0 ||phdn->iItem==1))
  {
  return *pResult=TRUE;
  }
  return CHeaderCtrlCl::OnNotify(wParam, lParam, pResult);
}


BOOL CHeaderCtrlCl::OnChildNotify(UINT msg, WPARAM wp, LPARAM lp, LRESULT* pRes)
能禁止某列拖动吗?由于我是初学,请见谅,谢谢!

[解决办法]
直接在控件的属性里找找,不用重载吧
[解决办法]
拖动某行是自己实现的吧,再改改限制要隐藏的行就好了
[解决办法]
HDN_BEGINTRACK


HDN_BEGINTRACK 
phdn = (LPNMHEADER) lParam; 

Notifies a header control's parent window that the user has begun dragging a divider in the control (that is, the user has pressed the left mouse button while the mouse cursor is on a divider in the header control). This 

[解决办法]
呵呵,恭喜~

热点排行