怎样在屏幕上画直线?

tianxinet 2001-07-09 03:23:32
请问怎样在屏幕上以任意一点为交点,画两条互相垂直的直线(一条水平,一条竖直)
...全文
549 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
gameboy999 2001-07-09
  • 打赏
  • 举报
回复
哈哈。。
先用MonkeyLin(没有MSDN的猴) 的方法将屏幕拷贝到窗体,

再用hbm(江夏浪八) 的方法画线
xxlroad 2001-07-09
  • 打赏
  • 举报
回复
MonkeyLin(没有MSDN的猴) 说的有道理啊
T2 2001-07-09
  • 打赏
  • 举报
回复
朋友﹐線還沒畫完呢?
MonkeyLin 2001-07-09
  • 打赏
  • 举报
回复
直接在桌面上划线是不太可能的,先建立一个窗体把桌面覆盖,然后把桌面画到这个窗体上
然后再在这个窗体上划线
先用GetDesktopWindow获得桌面句柄,然后BitBlt……

Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Const SRCCOPY = &HCC0020

Private Sub Form_Load()
Form1.Left = 0
Form1.Top = 0
Form1.Width = Screen.Width
Form1.Height = Screen.Height
screenhwnd = GetDesktopWindow()
screendc = GetDC(screenhwnd)
rc = BitBlt(Form1.hDC, 0, 0, Form1.ScaleWidth, Form1.ScaleHeight, screendc, 0, 0, SRCCOPY)
之后划线……
end sub
hbm 2001-07-09
  • 打赏
  • 举报
回复
我也不会了!
tianxinet 2001-07-09
  • 打赏
  • 举报
回复
hbm(江夏浪八) & kinder(干杯吧,朋友):
怎样用?
kinder 2001-07-09
  • 打赏
  • 举报
回复
用cls
hbm 2001-07-09
  • 打赏
  • 举报
回复
用API!
tianxinet 2001-07-09
  • 打赏
  • 举报
回复
hbm(江夏浪八) :
按你的方法可以在当前窗体上画线了,不过我的意思是说要在屏幕上画线,并且画出的线怎样清除呢?请帮忙解答!
hbm 2001-07-09
  • 打赏
  • 举报
回复
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Form1.Line (X, 0)-(X, Form1.Height)
Form1.Line (0, Y)-(Form1.Width, Y)
End Sub
或者把中间两句话放到其他事件中.

7,786

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧