我在想如何實現水平(或垂直)捕捉鼠標光標到一行。例如,在Facebook時間軸功能上,將鼠標懸停在中心線上時,會將光標對準中心。將鼠標靠近線條也會捕捉它。將鼠標光標對準Delphi自定義控件中的一行
我想包裹在一個自定義控件的內部,而不是一個窗體的控件。將會有一條垂直線或水平線,並且它必須在鼠標光標靠近時將它捕捉到它。我將添加返回被點擊的行的位置的事件。此控件還會有一個垂直或水平滾動條,與此行平行,並且兩個滾動條不會同時顯示。有一個主屬性是否顯示此行垂直或水平。
鼠標實際上不應該移動位置,但只是將光標的顯示調整爲顯示它位於該行的中心,而實際的X(或Y)位置從不改變。我不想移動光標,我想顯示光標在這行的中心,如果它接近任何地方。當光標處於此捕捉位置時,它將顯示另一個自定義光標,而不是標準(或默認)箭頭。
我只需要知道的是如何在此控件中處理鼠標指針在此行附近的事件,並將光標的顯示調整爲位於此行的中心。
儘管聽起來很愚蠢,但爲了防止任何人想要爲我演示這個功能而建立一個控制外殼,請提前通知我,以便我知道要等待它。否則,我仍然接受任何有關如何處理此問題的建議。 – 2012-02-17 02:03:03
我沒有投票你,但我很困惑這個問題。標題說「捕捉鼠標光標」,但文字說「鼠標實際上不應該移動位置,但應該調整光標的顯示」。你是什麼意思光標不應該移動,但它應該移動?我是唯一一個發現這種矛盾的人嗎?我只是看了一下Facebook的時間表,我不明白。圖片? – 2012-02-19 03:55:37
@WarrenP X,Y位置(用戶指向鼠標的位置)永遠不會改變,但光標顯示位置的視圖會改變。因此,對於檢查,你可以指向60,100,但它顯示在55,100,並指向它50,100也顯示在55,100。 – 2012-02-19 12:32:44