最近写了一个自绘的滚动条,大致思路是将系统的滚动条disable,然后在特定位置画上自己的滚动条,并模拟。滚动条类mousemove函数实现中出现了问题,代码如下:                  m_nThumbTop = point.y-13; 拖动手柄区域的top
double nMax = GetScrollLimit(SB_VERT);// 滚动条范围 
// 现在滚动条位置 
int nPos = ::GetScrollPos(m_hAssociate,SB_VERT);
double nHeight = clientRect.Height()-98;
double nVar = nMax;
// 滚动条单位对应的客户区高
m_dbThumbInterval = nHeight/nVar;
// 滚动条范围内的移动大小
int nScrollTimes = (int)((m_nThumbTop-36)/m_dbThumbInterval)-nPos;
                  //发消息使richedit滚动
                  // 得到行高 height
                  CSize size;
size.cx = 0;
size.cy = nScrollTimes*height;
::SendMessage(m_hAssociate, WM_VSCROLL, size.cx, size.cy);
                  
问题:1:不会得到行高?
      2:sendmessage好像不行,我用了常量height=8,richedit不动。另外,这个自绘滚动栏支持listctrl,同样的思路。
      3:很郁闷,以后类似情况有什么方法能不这么郁闷。。