[VB.NET]實做Spy++的拖曳箭靶

相信有做過開發的大家,對於Spy++這套軟體一定都不陌生,應該也都知道在Spy++中有個可以拖曳的箭靶,透過這個可拖曳的箭靶,使用者可以很快速的指定要監看的視窗。今天這篇就是稍微紀錄一下如何實作這個拖曳箭靶。

image

實作的概念很簡單,只要準備兩張圖片、一張滑鼠游標。兩張圖片分別為:

image 含箭靶的視窗圖示,用來顯示箭靶尚未被拖曳的狀態。
image 不含箭靶的視窗圖示,用來顯示箭靶已被拖曳出的狀態。

滑鼠游標則是準備一個像箭靶的游標。

image

接著在滑鼠按下時把圖片換為不含箭靶的視窗圖示,並將滑鼠游標替換成箭靶的樣子。而當滑鼠釋放時,再把圖片換回含箭靶的視窗圖示,Spy++的拖曳箭靶就完成了。

在實作上我們可以在開個使用者控制項專案,加入準備好的兩張圖片至資源中。

image

再來把準備好的滑鼠游標加入至專案中。

image

接著在使用者控制項上放個PictureBox,載入含有箭靶的視窗圖示。設定PictureBox的SizeMode屬性為AutoSize,UserControl的AutoSize屬性為True。

image

在PictureBox.MouseDown事件中,把圖片替換為不含箭靶的視窗圖示,並替換當前游標。

PictureBox1.Image = My.Resources.SPYXX1
Cursor.Current = New Cursor(Me.GetType, “arrow.cur”)


在PictureBox.MouseUp事件中,把圖片再替換回含箭靶的視窗圖示。

PictureBox1.Image = My.Resources.SPYXX

將該控制項放置表單,即可看到如下運行效果:

image

image