各位达人,
需求是这样:根据一组坐标在picture上面画一条线(没有规律) ,用picture.line方法绘制后,,
可以达到预期效果,但是我想选中这条线,然后更改这条线的样式,,然后鼠标右键删除 现在是无法选中这条线,,,各位达人有没有好的解决办法高分奉上
需求是这样:根据一组坐标在picture上面画一条线(没有规律) ,用picture.line方法绘制后,,
可以达到预期效果,但是我想选中这条线,然后更改这条线的样式,,然后鼠标右键删除 现在是无法选中这条线,,,各位达人有没有好的解决办法高分奉上
picture本身都不能选的,还要"更改线的样式,鼠标右键删除", 尝试别的方法,考虑别的控件吧.
呵呵,不要在这上面吊死了
缺点:实现较复杂,优点:速度快(可以自设双缓冲)。
第二种办法:不直接使用VB的line命令,而是使用VB本身自带的Line控件,以动态数组方式实现。
缺点:有闪烁现象,优点:代码实现简单。
缺点:有闪烁现象,优点:代码实现简单。这个办法可以
Line控件能选中删除?
楼主要的是能选中删除的线
附上代码
Private Declare Function ScreenToClient Lib "user32 " (ByVal hWnd As Long, lpPoint As POINTAPI) As Long
Private Declare Function GetCursorPos Lib "user32 " (lpPoint As POINTAPI) As Long
Private Type POINTAPI
X As Long
Y As Long
End TypePrivate Function IsClickLine(pt As POINTAPI, oLine As Line) As Boolean
Dim a As Integer, b As Integer, bret As Boolean
On Error GoTo psErr
a = Int((pt.Y - oLine.Y1) / (pt.X - oLine.X1) * 100)
b = Int((pt.Y - oLine.Y2) / (pt.X - oLine.X2) * 100)
Debug.Print "a= " & a & " b = " & b
If Abs(a - b) <= 20 Then '允许有20 的误差
bret = True
End If
IsClickLine = bret
Exit Function
psErr:
'除数为0 即鼠标点到了端点
IsClickLine = True
End Function网上找的,,基本可以达到我要求,,
另外,删除的话,,反色重绘一遍就可以达到效果,呵呵,偷懒了,,还是要感谢各位达人,,,