现在的位置: 首页 > 综合 > 正文

解决DBGrid中关于鼠标滚轮的一种方法。

2013年01月18日 ⁄ 综合 ⁄ 共 498字 ⁄ 字号 评论关闭

解决DBGrid的鼠标滚动的方法
1. Add in .h file:

private: // 添加声明
void __fastcall (__closure *OldProc)(Messages::TMessage &Message);
void __fastcall NewProc(TMessage &Message);

 

2. Add in .cpp file:
// 添加以下语句到OnFormCreate事件中
OldProc = DBGrid1->WindowProc;
DBGrid1->WindowProc = NewProc;

 

void __fastcall TForm1::NewProc(TMessage& Message)
{
  if (Message.Msg == WM_MOUSEWHEEL)
  {
    int z = GET_WHEEL_DELTA_WPARAM(Message.WParam);
    Message.Msg = WM_VSCROLL;
    if (z > 0)
      Message.WParam = SB_LINEUP;
    else
      Message.WParam = SB_LINEDOWN;
  }
  OldProc(Message);
}

抱歉!评论已关闭.