我有一个控件,上面已经画有图案了,我现在想再在上面画鼠标指针,这个鼠标指针是实时跟着我的真实的鼠标指针动的,我用cursor.draw画过去之后,鼠标一动就有重影,估计是控件本身没有重画造成,有没有办法解决一下?使鼠标指针显示正常呢?听说要用到异或画图法,有人了解吗?

解决方案 »

  1.   

    你可以把绘制鼠标指针的方法 与绘制图形的方法分开。
    鼠标指针其实就是以个HBITMAP Graphcis是支持的
      

  2.   

    如果只是想更换鼠标指针,可以使用API.
    Imports System.ReflectionPublic Class SOR
        Public KEY As String = ""
        Private Declare Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As IntPtr    Public Function FDSOR(ByVal pth As String) As System.Windows.Forms.Cursor
            Try
                Dim myCursor As New Windows.Forms.Cursor(Windows.Forms.Cursor.Current.Handle)
                Dim colorCursorHandle As IntPtr = LoadCursorFromFile(pth)
                myCursor.GetType().InvokeMember("handle", BindingFlags.Public Or _
                BindingFlags.NonPublic Or BindingFlags.Instance Or BindingFlags.SetField, _
                Nothing, myCursor, New Object() {colorCursorHandle}) '
                Return myCursor
            Catch ex As Exception
                MsgBox("文件未找到")
                Return Nothing
            End Try
        End Function
    End Class Form1_Load()
    Me.Cursor=FDSOR("c:\123.ani")
      

  3.   

    鼠标onMouseMove事件,触发就重画么
      

  4.   

    private void myCtr_MouseEnter(object sender, EventArgs e)
    {
          myCtr.Cursor = new Cursor(fileName);//fileName:your Cursor File
    }