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

ListBox 不使用Disabled,但如何使用API使其無法FOCUS

答題得分者是:Stallion
ttk
一般會員


發表:3
回覆:9
積分:2
註冊:2004-11-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-09-05 11:14:31 IP:61.229.xxx.xxx 訂閱
用滑鼠點按ListBox,想要使其無作用(無法選擇item),要如何作?
偵測WM_MOUSEACTIVATE後 用 WM_KILLFOCUS SendMessage
,但按下滑鼠時Item仍會被選取到
anyone
中階會員


發表:1
回覆:63
積分:52
註冊:2007-02-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-09-05 11:59:55 IP:59.127.xxx.xxx 未訂閱
不知道這是不是你要的 <textarea class="delphi" rows="10" cols="60" name="code">procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin i:=ListBox1.ItemIndex; end; procedure TForm1.ListBox1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ListBox1.ItemIndex:=i; end; </textarea>
編輯記錄
anyone 重新編輯於 2007-09-05 12:06:26, 註解 無‧
anyone 重新編輯於 2007-09-05 13:41:15, 註解 無‧
ttk
一般會員


發表:3
回覆:9
積分:2
註冊:2004-11-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-09-05 15:44:05 IP:61.229.xxx.xxx 訂閱
謝謝你的回覆,我希望的功能是: ListBox item 的選擇僅透過程式來控制,但不希望由滑鼠來點選
anyone
中階會員


發表:1
回覆:63
積分:52
註冊:2007-02-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-09-05 17:03:15 IP:59.127.xxx.xxx 未訂閱
我的目的是就算有人按滑鼠也無法去點選,而保持原來程式所選的
這不就是意味著只能用程式去控制,而無法用人工點選?
我是照著你說的話去做的
可能從你問的,而我的想法和你想要的有些出入吧!呵~~
你有去試過我提的那個程式嗎?
===================引 用 ttk 文 章===================
謝謝你的回覆,我希望的功能是: ListBox item 的選擇僅透過程式來控制,但不希望由滑鼠來點選
編輯記錄
anyone 重新編輯於 2007-09-05 17:11:49, 註解 無‧
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-09-05 17:20:51 IP:211.22.xxx.xxx 未訂閱
1.想太多了~經過程式控制而不由使用者來點選,那麼直接把 enabled 屬性設定成false即可。
2.如果真的不想要有看起來灰色的樣子,小弟查了一下HELP可以用VCL內部使用(internal use)的方法,所謂內部使用可能未來的繼承移植性就不能保證了。
void __fastcall TForm1::ListBox1Enter(TObject *Sender)
{
this->DefocusControl(this->ListBox1,false); //這樣 ListBox 就不能接收滑鼠與鍵盤在其上有焦點。
}
===================引 用 ttk 文 章===================
謝謝你的回覆,我希望的功能是: ListBox item 的選擇僅透過程式來控制,但不希望由滑鼠來點選
編輯記錄
Stallion 重新編輯於 2007-09-05 17:40:57, 註解 加入一些字~‧
ttk
一般會員


發表:3
回覆:9
積分:2
註冊:2004-11-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-09-06 09:58:59 IP:61.229.xxx.xxx 訂閱
我把指令改成 this->DefocusControl(this->ListBox1,true); 功能就出來了
Thank you very much!

PS:我試過上面另一個方式,其效果不適合我的使用,thank you!

===================引 用 Stallion 文 章===================
1.想太多了~經過程式控制而不由使用者來點選,那麼直接把 enabled 屬性設定成false即可。
2.如果真的不想要有看起來灰色的樣子,小弟查了一下HELP可以用VCL內部使用(internal use)的方法,所謂內部使用可能未來的繼承移植性就不能保證了。
?void __fastcall TForm1::ListBox1Enter(TObject *Sender)
{
?this->DefocusControl(this->ListBox1,false); //這樣 ListBox 就不能接收滑鼠與鍵盤在其上有焦點。
}

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