全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1548
推到 Plurk!
推到 Facebook!

有關Form的ScrollBar

缺席
lin11112
初階會員


發表:42
回覆:83
積分:25
註冊:2003-02-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-11-05 15:24:49 IP:218.210.xxx.xxx 訂閱
請問各位先進:

請問是否有方法可以抓取Form上的Scroll事件

即當移動捲軸時能觸發某事件

以便能判斷並執行其他事件

謝謝

taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-11-05 15:42:38 IP:118.169.xxx.xxx 訂閱
麻煩將您之前的問題結案:
http://delphi.ktop.com.tw/members_question.php?uid=7733

攔截訊息:
.h
class TForm1 : public TForm
{
__published: // IDE-managed Components
TButton *Button1;
TMemo *Memo1;
void __fastcall FormCreate(TObject *Sender);
private: // User declarations
TWndMethod OldFormWndProc;
void __fastcall FormWndProc(TMessage& Message);
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};

.cpp
void __fastcall TForm1::FormCreate(TObject *Sender)
{
OldFormWndProc = Form1->WindowProc;
Form1->WindowProc = FormWndProc;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormWndProc(TMessage& Message)
{
switch (Message.Msg){
case WM_VSCROLL:{
//do something, ex: Memo1->Lines->Add(Message.WParamHi);
}break;
}
OldFormWndProc(Message);
}

編輯記錄
taishyang 重新編輯於 2008-11-05 15:44:08, 註解 無‧
lin11112
初階會員


發表:42
回覆:83
積分:25
註冊:2003-02-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-11-05 16:44:29 IP:218.210.xxx.xxx 訂閱
taishyang大大提供的方式小弟已試過
但仍無法攔截到ScrollBar捲動的訊息
因在Form還有其他的元件存在也會抓取Mouse的事件
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-11-05 16:48:03 IP:118.169.xxx.xxx 訂閱
之前提到:Form上的Scroll事件


是指誰的scrollbar? form的? or?
編輯記錄
taishyang 重新編輯於 2008-11-05 16:50:03, 註解 無‧
lin11112
初階會員


發表:42
回覆:83
積分:25
註冊:2003-02-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-11-06 08:04:03 IP:218.210.xxx.xxx 訂閱
要抓取的scroll是MDIForm
而MDIForm上還有MDIChild及其他元件
系統時間:2024-04-19 9:42:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!