画图问题,API调用问题。
Declare Auto Function GetDC Lib "user32" (ByVal hwnd As Integer) As IntPtr
Declare Function CreatePen Lib "gdi32" Alias "CreatePen" (ByVal nPenStyle As Integer, ByVal nWidth As Integer, ByVal crColor As Integer) As Integer
Declare Function GetROP2 Lib "gdi32" Alias "GetROP2" (ByVal hdc As IntPtr) As Integer
Declare Function SetROP2 Lib "gdi32" Alias "SetROP2" (ByVal hdc As IntPtr, ByVal nDrawMode As Long) As Integer
Declare Function SelectObject Lib "gdi32" Alias "SelectObject" (ByVal hdc As IntPtr, ByVal hObject As IntPtr) As Integer
Declare Function GetStockObject Lib "gdi32" Alias "GetStockObject" (ByVal nIndex As Integer) As IntPtr
Declare Function ReleaseDC Lib "user32" Alias "ReleaseDC" (ByVal hwnd As Integer, ByVal hdc As IntPtr) As IntPtr
Declare Function Rectangle Lib "gdi32" Alias "Rectangle" (ByVal hdc As IntPtr, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Dim slx As Single = -1
Dim sly As Single = -1
Dim slw As Single = -1
Dim slh As Single = -1
Private Sub APIDraw()
Dim p As System.IntPtr = GetDC(0) '取得屏幕
Dim oldrop2, pen, oldpen As Integer
oldrop2 = GetROP2(p) '保存以前的画图方式
SetROP2(p, 7) '设置XOR画笔
SelectObject(p, GetStockObject(5)) '屏蔽画刷
pen = CreatePen(2, 1, System.Drawing.ColorTranslator.ToWin32(System.Drawing.Color.Black)) '新建画笔
oldpen = SelectObject(p, GetStockObject(pen)) '使用画笔
If slx > -1 Then '如果不是出始就第2次异或
Rectangle(p, slx, sly, slw, slh) '画矩形
End If
If HasLayout Then ‘如果拖动
slx = Me.Location.X + mx - lx '保存本次矩形
sly = Me.Location.Y + my - ly
slw = Me.Location.X + mx - lx + Me.Width
slh = Me.Location.Y + my - ly + Me.Height
Rectangle(p, slx, sly, slw, slh) '画矩形
Else
slx = sly = slw = slh = -1 '还原
End If
pen = SelectObject(p, GetStockObject(oldpen)) '还原画笔
SetROP2(p, oldrop2) '还原以前的画图方式
ReleaseDC(0, p) '释放
End Sub
我上面这段代码为什么画不出图形来啊。本来想实现窗体拖动,现在连图形的画不出来。
问题点数:20、回复次数:6Top
1 楼Knight94(愚翁)回复于 2006-06-03 12:46:38 得分 10
画图函数你在哪儿调用的?Top
2 楼cymandhxl(迷失中)回复于 2006-06-03 12:59:45 得分 0
是在鼠标移动事件里啊mousedown,mousemove,mouseleaveTop
3 楼Knight94(愚翁)回复于 2006-06-03 13:05:02 得分 0
你要做什么?Top
4 楼ilove8(千里|你去哪里了,我等了你很久了!)回复于 2006-06-03 13:17:18 得分 10
upTop
5 楼cymandhxl(迷失中)回复于 2006-06-03 16:34:54 得分 0
拖动窗体的时候要想有个虚框在走,这就是我想要的结果.Top
6 楼cymandhxl(迷失中)回复于 2006-06-04 20:01:31 得分 0
真的没有人帮助我吗Top




