線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2411
推到 Plurk!
推到 Facebook!

Form上自動產生scrollbar的疑問

尚未結案
adward
一般會員


發表:24
回覆:19
積分:8
註冊:2004-09-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-07-31 19:21:40 IP:140.135.xxx.xxx 訂閱

請問各位先進:

當Form上物件超出畫面時 所產生出的VertScrollbar

我希望能在移動捲軸時觸發某一事件

也就是如同物件Scrollbar中的OnScroll的事件

不知道有沒有何方法??

我有想過用Timer不斷去偵測scrollbar的position

但好像有點大材小用 浪費資源

//--------------------------------------------------------------------

其實我最終目的是想達到將畫面以一頁一頁的方式產生

因為我的Frame上是一張一張依序排列的影像

我不希望在移動畫面的過程中 有影像是一半的狀況產生

我可以用Vertscrollbar中的increment屬性

控制按上或下時移動的大小

以達到我所希望呈現的方式

但是在拖曳時 就不知道要如何處理

請問各位先進有沒有什麼想法 可以提供我一點意見

最後謝謝先進耐心的看完我的問題~~~

justdo
高階會員


發表:2
回覆:359
積分:222
註冊:2004-08-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-08-01 20:08:05 IP:59.105.xxx.xxx 未訂閱
你可以先寫好一個function來處理scrollbar移動事件,然後在程式執行的過程中,產生一個新scrollbar物件,再指定OnScroll指到這個function,以TButton為例:
TButton *t=new TButton(this);
t->Parent=this;
t->TForm1::Button3Click;
也就是在執行時期,指定這個新產生的button,當onclick發生時,去執行哪個函式
adward
一般會員


發表:24
回覆:19
積分:8
註冊:2004-09-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-08-01 21:34:25 IP:163.28.xxx.xxx 訂閱

謝謝你的回答

不好意思

您可能誤會我的意思了

我是希望去控制Form上"自動"產生的捲軸(scrollbar)

而不是去動態產生新的捲軸(scrollbar)

因為我知道scrollbar物件中 有OnScroll的事件

而Form上"自動"產生的捲軸好像沒有這種事件

所以請問要如何控制

justdo
高階會員


發表:2
回覆:359
積分:222
註冊:2004-08-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-08-02 22:59:09 IP:59.105.xxx.xxx 未訂閱
用SetWindowsHookEx() API 去設定hook,當WM_VSCROLL或WM_HSCROLL事件發生的時候去呼叫你要做的事情,指令詳細的說明請用hook或SetWindowsHookEx當關鍵字搜尋本站文章
justdo
高階會員


發表:2
回覆:359
積分:222
註冊:2004-08-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2006-08-02 23:22:53 IP:59.105.xxx.xxx 未訂閱

另外找到一個方法:覆寫TForm的訊息處理流程
在.h加上
void __fastcall SubClassWndProc(Messages::TMessage &Message);
在.cpp的建構子,加上
WindowProc = SubClassWndProc;
.cpp加上這個函式
void __fastcall TForm1::SubClassWndProc(Messages::TMessage &Message)
{
if (Message.Msg == WM_HSCROLL)
ShowMessage("scroll event");

if (Message.Msg == WM_VSCROLL)
ShowMessage("scroll event");

WndProc(Message);
}
不過目前還無法分辨是Form本身的捲軸、還是Form上面其他元件的捲軸產生的事件...

adward
一般會員


發表:24
回覆:19
積分:8
註冊:2004-09-06

發送簡訊給我
#6 引用回覆 回覆 發表時間:2006-08-15 21:46:23 IP:140.135.xxx.xxx 訂閱

謝謝justdo大大的回應

給我兩種不同的方法

我會努力去解決問題的~~

系統時間:2024-11-23 20:58:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!