首先你必須要先抓到 MouseWheel



先在你的Form Class 裡面宣告如下



TWndMethod oldDBGridProc; //儲存原始訊息處理函式 

void __fastcall DBGridWndProc(Messages::TMessage &Message); //攔截訊息函式 



然後可以在 FormCreate 裡面去換掉原來的訊息處理函式



oldDBGridProc = DBGrid1->WindowProc;

DBGrid1->WindowProc = DBGridWndProc;



再來實作你的的訊息處理函式操作你的 DataSet



void __fastcall TForm::DBGridWndProc(Messages::TMessage &Message)

{

  short int Delta;

  if ( Message.Msg == WM_MOUSEWHEEL )

  {

    Delta = Message.WParamHi;

    if ( Delta < 0 )

      ADOQuery1->Next();

    if ( Delta > 0 )

      ADOQuery1->Prior();

  }

  else

  {

    oldDBGridProc(Message);  //記得要送回給原來的訊息處理函式

  }

}

資料來源:

http://delphi.ktop.com.tw/board.php?cid=168&fid=913&tid=87852

kenny23 發表在 痞客邦 PIXNET 留言(0) 人氣()