例如:Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function LineTo Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As LongPrivate Sub Command1_Click()
Call LineTo(GetDC(0), 400, 300)
End Sub请赐教,谢谢~
Private Declare Function LineTo Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As LongPrivate Sub Command1_Click()
Call LineTo(GetDC(0), 400, 300)
End Sub请赐教,谢谢~
解决方案 »
- vb 关于自动计算的问题
- 我执行一条存储过程老是提示参数错误。麻烦看一下代码!
- 请问,怎样用flexgrid与键盘的ctrl组合成多选功能?
- 能否优化这条查询语句?
- Winnet 和 inet的使用?!
- 如何备份sql server的数据库??(下午之前急用)
- 这个问题烦我很久了!为什么在保存数据时有时会显示被某用户独占?(我用的是Aceess数据库)
- 取对象的句柄问题??
- 修改数据后,MSHFLEXGrid1为什么不能刷新?
- 我把一个时间提交到sql server 中,但在数据库中显示是日期前面加了个 1900-1-1 的年份,为什么
- 菜鸟的问题:向表中插入记录时出现这个错误提示,我该怎么处理?
- 怎样让窗体在最小化时显示在任务栏的上方
Private Declare Function LineTo Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
Dim w As Long, h As Long, l As Long, t As Long
Private Sub Command1_Click()
Call LineTo(GetDC(0), 400, 300)
w = Me.Width
h = Me.Height
l = Me.Left
t = Me.Top
End SubPrivate Sub Command2_Click()
On Error Resume Next
Me.Move 0, 0, Screen.Width, Screen.Height
Me.Cls
Me.Move l, t, w, h
End Sub
由于LineTo是画在一个设备场景上的(像上面的例子里,我用整个屏幕做为设备场景画线),
我用了几个清除设备场景的API,结果都不奏效请看下面的例子:Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function LineTo Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Type POINTAPI
X As Long
Y As Long
End TypePrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button <> 1 Then Exit Sub
Dim p As POINTAPI
GetCursorPos p
Call LineTo(GetDC(0), p.X, p.Y)
End Sub我想做的就是画第二条线时同时能把第一条线删除掉
不像现在这样最终会把屏幕全画黑:)
设置DC的作图模式可以用SetROP2函数
SetROP2(screenDC, R2_NOT)
'畫線
MoveTo();
LineTo();
'擦掉剛才的線,也就是直接叫上面的語句再運行一次
MoveTo();
LineTo();'別忘了釋放資源
ReleaseDC(0, screenDC)