例項107滑鼠畫線

2021-10-05 21:55:46 字數 1988 閱讀 1504

控制項的mousedown事件處理過程青兩個引數,乙個是sender,乙個是mouseeventargs類的事件。

mouseeventargs類是定義在system.windows.forms中的乙個類,它由同乙個命名空間下的eventargs繼承而來。

mouseeventargs類的主要屬性有:

graphics類中定義的drawlines用於按照陣列中給定的點序列繪製折線。

繪製一系列連線一組 point 結構的線段。

drawlines(pen, point)

繪製一系列連線一組 point 結構的線段。

drawlines(pen, pointf)

繪製一系列連線一組 pointf 結構的線段。

滑鼠左鍵開始,右鍵結束

public class form1

dim mygraph as graphics

dim mypen as new pen(brushes.red, 3)

dim pointpath() as point

dim pointnum as integer = 0

private sub form1_load(byval sender as object, byval e as system.eventargs) handles me.load

mygraph = picturebox1.creategraphics

end sub

private sub picturebox1_mousedown(byval sender as object, byval e as system.windows.forms.mouseeventargs) handles picturebox1.mousedown

if e.button = mousebuttons.left then

if pointnum <= 0 then

redim pointpath(0)

else

redim preserve pointpath(pointpath.getupperbound(0) + 1)

end if

pointpath(pointpath.getupperbound(0)).x = e.x

pointpath(pointpath.getupperbound(0)).y = e.y

pointnum += 1

elseif e.button = mousebuttons.right then

mygraph.drawlines(mypen, pointpath)

pointnum = 0

end if

end sub

private sub picturebox1_mousemove(byval sender as object, byval e as system.windows.forms.mouseeventargs) handles picturebox1.mousemove

if pointnum > 1 then

mygraph.clear(picturebox1.backcolor)

mygraph.drawlines(mypen, pointpath)

mygraph.drawline(mypen, pointpath(pointnum - 1).x, pointpath(pointnum - 1).y, e.x, e.y)

elseif pointnum = 1 then

mygraph.clear(picturebox1.backcolor)

mygraph.drawline(mypen, pointpath(pointnum - 1).x, pointpath(pointnum - 1).y, e.x, e.y)

end if

end sub

end class

MFC 滑鼠畫線總結

使用mfc滑鼠畫線,主要使用滑鼠左鍵單擊,滑鼠移動,滑鼠右鍵單擊等響應函式完成。在mfc畫線是主要要注意以下幾點 1 座標系問題 在滑鼠左鍵單擊的響應函式中獲取的滑鼠座標為裝置座標 螢幕座標 而畫線使moveto,lineto函式使用的是邏輯座標 客戶區座標 因此在獲取滑鼠單擊座標時需要進行座標系的...

VTK 滑鼠畫線(點移動線可同步更新)

滑鼠互動事件 點兩個點形成一條線 通過滑鼠點兩個點,同時標記這兩個點,形成一條線。只有一條線,並不是每次點兩個點都會新出現一條線 這個版本是個初級版本,後面我也實現了任意拖動乙個點,直線會相應發生變化,以及兩點在z軸上的變動,線也會同步更新 太多所以我也沒有貼上來,有需要了我會發出來!double ...

C 編寫畫直線,簡單畫線,滑鼠互動畫線,畫一條線

從最簡單c 窗體畫線開始,直接開啟vs,選擇c 的窗體應用程式,然後把 放進去,事件繫結就ok,下面是詳細步驟。using system using system.collections.generic using system.componentmodel using system.data us...