刚刚写的在屏幕上画兰点的小程序 1.添加Timer1 2.Timer1.Interval=1 3.代码如下,写得比较仓促,很可能有错误,望指正 Private Const VK_LBUTTON = &H1 Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function SetPixel Lib "gdi32" (ByVal hDC As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long Private Type POINTAPI x As Long y As Long End TypePrivate Sub Timer1_Timer()
Dim lpCursorPos As POINTAPI Dim hDC As Long
If GetAsyncKeyState(VK_LBUTTON) And &H8000 Then
'MouseDown GetCursorPos lpCursorPos hDC = GetWindowDC(0&) SetPixel hDC, lpCursorPos.x, lpCursorPos.y, &HFF0000 End If End Sub
使用异或画笔作图Public Declare Function SetROP2 Lib "gdi32" (ByVal hdc As Long, ByVal nDrawMode As Long) As Long异或画笔 SetROP2 Picture1.hdc, 7正常画笔 SetROP2 Picture1.hdc, 13 用以下API Public Declare Function InvalidateRect Lib "user32" (ByVal hwnd As Long, lpRect As typeRECTAPI, ByVal bErase As Long) As LongPublic Declare Function SetROP2 Lib "gdi32" (ByVal hdc As Long, ByVal nDrawMode As Long) As Long Public Declare Function MoveToEx Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, lpPoint As typePOINTAPI) As LongPublic Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long Public Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As LongPublic Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long Public Declare Function CreateHatchBrush Lib "gdi32" (ByVal nIndex As Long, ByVal crColor As Long) As Long Public Declare Function CreatePen Lib "gdi32" (ByVal nPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As Long Public Declare Function GetStockObject Lib "gdi32" (ByVal nIndex As Long) As LongPublic Declare Function LineTo Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As LongPublic Declare Function Rectangle Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long Public Declare Function Ellipse Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As LongPublic Declare Function Polygon Lib "gdi32" (ByVal hdc As Long, lpPoint As typePOINTAPI, ByVal nCount As Long) As Long Public Declare Function Polyline Lib "gdi32" (ByVal hdc As Long, lpPoint As typePOINTAPI, ByVal nCount As Long) As LongPublic Declare Function SetCapture Lib "user32" (ByVal hwnd As Long) As Long Public Declare Function ReleaseCapture Lib "user32" () As LongPublic Declare Function GetTextExtentPoint Lib "gdi32" Alias "GetTextExtentPointA" (ByVal hdc As Long, ByVal lpszString As String, ByVal cbString As Long, lpSize As typeSIZEAPI) As Long Public Declare Function CreateFontIndirect Lib "gdi32" Alias "CreateFontIndirectA" (lpLogFont As typeLOGFONT) As Long Public Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal lpString As String, ByVal nCount As Long) As Long Public Declare Function SetTextColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As LongPublic Declare Function RectVisible Lib "gdi32" (ByVal hdc As Long, lpRect As typeRECTAPI) As LongPublic Declare Function ArcTo Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long) As Long Public Declare Function Arc Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long) As Long Public Declare Function Chord Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long) As Long Public Declare Function Pie Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long) As LongPublic Declare Function PtInRegion Lib "gdi32" (ByVal hRgn As Long, ByVal X As Long, ByVal Y As Long) As Long Public Declare Function PtInRect Lib "user32" (lpRect As typeRECTAPI, ByVal X As Long, ByVal Y As Long) As LongPublic Declare Function WidenPath Lib "gdi32" (ByVal hdc As Long) As Long Public Declare Function StrokeAndFillPath Lib "gdi32" (ByVal hdc As Long) As Long Public Declare Function StrokePath Lib "gdi32" (ByVal hdc As Long) As Long
2.GetAsyncKeyState(VK_LBUTTON左键VK_RBUTTON右键)得到按键状况
3.GetWindowDC得到句柄,然后就可以根据前面得到的鼠标状态用LineTo画线,Rectangle画矩形,等等
1.添加Timer1
2.Timer1.Interval=1
3.代码如下,写得比较仓促,很可能有错误,望指正
Private Const VK_LBUTTON = &H1
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function SetPixel Lib "gdi32" (ByVal hDC As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long
Private Type POINTAPI
x As Long
y As Long
End TypePrivate Sub Timer1_Timer()
Dim lpCursorPos As POINTAPI
Dim hDC As Long
If GetAsyncKeyState(VK_LBUTTON) And &H8000 Then
'MouseDown
GetCursorPos lpCursorPos
hDC = GetWindowDC(0&)
SetPixel hDC, lpCursorPos.x, lpCursorPos.y, &HFF0000
End If
End Sub
SetROP2 Picture1.hdc, 7正常画笔
SetROP2 Picture1.hdc, 13
用以下API
Public Declare Function InvalidateRect Lib "user32" (ByVal hwnd As Long, lpRect As typeRECTAPI, ByVal bErase As Long) As LongPublic Declare Function SetROP2 Lib "gdi32" (ByVal hdc As Long, ByVal nDrawMode As Long) As Long
Public Declare Function MoveToEx Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, lpPoint As typePOINTAPI) As LongPublic Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Public Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As LongPublic Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long
Public Declare Function CreateHatchBrush Lib "gdi32" (ByVal nIndex As Long, ByVal crColor As Long) As Long
Public Declare Function CreatePen Lib "gdi32" (ByVal nPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As Long
Public Declare Function GetStockObject Lib "gdi32" (ByVal nIndex As Long) As LongPublic Declare Function LineTo Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As LongPublic Declare Function Rectangle Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Public Declare Function Ellipse Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As LongPublic Declare Function Polygon Lib "gdi32" (ByVal hdc As Long, lpPoint As typePOINTAPI, ByVal nCount As Long) As Long
Public Declare Function Polyline Lib "gdi32" (ByVal hdc As Long, lpPoint As typePOINTAPI, ByVal nCount As Long) As LongPublic Declare Function SetCapture Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function ReleaseCapture Lib "user32" () As LongPublic Declare Function GetTextExtentPoint Lib "gdi32" Alias "GetTextExtentPointA" (ByVal hdc As Long, ByVal lpszString As String, ByVal cbString As Long, lpSize As typeSIZEAPI) As Long
Public Declare Function CreateFontIndirect Lib "gdi32" Alias "CreateFontIndirectA" (lpLogFont As typeLOGFONT) As Long
Public Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal lpString As String, ByVal nCount As Long) As Long
Public Declare Function SetTextColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As LongPublic Declare Function RectVisible Lib "gdi32" (ByVal hdc As Long, lpRect As typeRECTAPI) As LongPublic Declare Function ArcTo Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long) As Long
Public Declare Function Arc Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long) As Long
Public Declare Function Chord Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long) As Long
Public Declare Function Pie Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long) As LongPublic Declare Function PtInRegion Lib "gdi32" (ByVal hRgn As Long, ByVal X As Long, ByVal Y As Long) As Long
Public Declare Function PtInRect Lib "user32" (lpRect As typeRECTAPI, ByVal X As Long, ByVal Y As Long) As LongPublic Declare Function WidenPath Lib "gdi32" (ByVal hdc As Long) As Long
Public Declare Function StrokeAndFillPath Lib "gdi32" (ByVal hdc As Long) As Long
Public Declare Function StrokePath Lib "gdi32" (ByVal hdc As Long) As Long