问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VB 在桌面屏幕上画一条直线如何让它重绘?

发布网友 发布时间:2022-04-26 05:08

我来回答

5个回答

热心网友 时间:2022-06-21 00:27

'屏幕重绘 源码如下
'画多线声波色条
Public Sub DrawFrequencies(intSamples() As Integer, picbox As PictureBox)

'FFT_SAMPLES = 1024
Dim sngRealOut(FFT_SAMPLES - 1) As Single
Dim sngBand As Single
Dim hBrush As Long
Dim i As Long
Dim j As Long
Dim intRed As Integer
Dim intGreen As Integer
Dim intBlue As Integer
Dim rcBand As RECT

If UBound(intSamples) < FFT_SAMPLES - 1 Then Exit Sub

If clsFFT Is Nothing Then
Set clsFFT = New clsFourier

clsFFT.NumberOfSamples = FFT_SAMPLES
clsFFT.WithTimeWindow = 1
End If
'读入数据
For i = 0 To FFT_SAMPLES - 1 'FFT_SAMPLES = 1024
clsFFT.RealIn(i + 1) = intSamples(i) '动态数值传送
Next

' lower band amplitudes
For i = 0 To FFT_BANDS - 1 'band(i) = 0 FFT_BANDS = 22

band(i) = band(i) - FFT_BANDLOWER 'FFT_BANDLOWER = 0.07

If band(i) < 0 Then band(i) = 0
Next

'band(0) = 0 : band(1) = 0 : band(2) = 0 : band(3) = 0 : band(4) = 0 : band(5) = 0 : band(6) = 0

For i = 0 To FFT_SAMPLES / 2
'FFT_SAMPLES = 1024
sngRealOut(i) = clsFFT.ComplexOut(i + 1) / (FFT_SAMPLES / 4) / 32767

If sngRealOut(i) > FFT_MAXAMPLITUDE Then
sngRealOut(i) = FFT_MAXAMPLITUDE
End If

sngRealOut(i) = sngRealOut(i) / FFT_MAXAMPLITUDE 'FFT_MAXAMPLITUDE = 0.2
Next

j = FFT_STARTINDEX

For i = 0 To FFT_BANDS - 1 'FFT_BANDS = 22

For j = j To j + FFT_BANDWIDTH 'FFT_BANDWIDTH = 3
sngBand = sngBand + sngRealOut(j)
Next

sngBand = (sngBand * (Hanning(i + 3, FFT_BANDS + 3) + 1)) / FFT_BANDWIDTH
'MsgBox band(i) '--------------------------------
If band(i) < sngBand Then band(i) = sngBand
If band(i) > 1 Then band(i) = 1

j = j + FFT_BANDSPACE
Next

' draw bars
picbox.Cls

intRed = 255
intBlue = 50

'画整个色块 共22块色条
For i = 0 To FFT_BANDS - 1 'FFT_BANDS = 22 picbox.ScaleHeight = 18
intGreen = (band(i) * 255) ' i ( 0-21)

hBrush = CreateSolidBrush(RGB(intRed, intGreen, intBlue))
'画单个色块
With rcBand
.Right = i * (DRW_BARWIDTH + DRW_BARSPACE) + DRW_BARWIDTH + DRW_BARXOFF
.Left = i * (DRW_BARWIDTH + DRW_BARSPACE) + DRW_BARXOFF
'单个色块的高度 忽上忽下 DRW_BARYOFF=2 常数 band(i)自定精度数组(0-22) 从小到大
'.Top = max(DRW_BARYOFF, Min(picbox.ScaleHeight, picbox.ScaleHeight - (picbox.ScaleHeight * band(i))) - DRW_BARYOFF) ' - 1)

.Top = max(2, Min(18, 18 - (18 * band(i))) - 2)

.Bottom = picbox.ScaleHeight - DRW_BARYOFF
End With

FillRect picbox.hdc, rcBand, hBrush '用指定刷子填充色块区域

DeleteObject hBrush
Next
End Sub

热心网友 时间:2022-06-21 00:27

我有办法。
用windowfrompoint拿到窗口句柄,然后用setwindowlong取代他原来的wndproc,在wm_paint事件里执行你的绘画操作。
autoredraw是个很没有意思的属性,他大量浪费资源。比较好的做法是在paint事件里处理。

例如你在x,y画线

public lpfn as long

public functoin Doit()
dim hWindow as long
hwindow=windowfrompoint(x,y)
lpfn=setwindowlong(hwindow,GWL_WNDPROC, addressof WndPorc)
end function

public function WndProc (byval hwnd as long, byval uMsg as long, byval wparam as long, byval lparam as long)
callwindowproc lpfn,hwnd,umsg,wparam,lparam
if umsg=wm_paint then
'linto或者任何操作
end if
end function

热心网友 时间:2022-06-21 00:28

把当前屏幕位图截成Bitmap保存,编辑然后把它设为墙纸

热心网友 时间:2022-06-21 00:28

捕捉屏幕的刷新事件,在这里调用划线。

热心网友 时间:2022-06-21 00:29

有API函数可让它重绘.你找以下<windows API函数大全>.里面有.
用window 的图元文件重绘.
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 帮我解释下这段C++代码,做火焰和熔浆效果的, 一道VB的程序题 求VB6 画二次函数图象的方法 目标检测中anchor box的做法和adaboost人脸检测中的滑窗检测有什么区别 vb 如何用For...Next...语句画sin图像? VB作图问题 p300 正常曲线图 谁能告诉我photoshop中拾色器的几个颜色模式的含义!!! 匡威的鞋子怎么样好吗 匡威的鞋子怎么看能详细的告诉我么 法国公司注册流程与优势? 匡威的来源,产地是哪里? 公司想要注册法国商标,法国注册商标的流程是怎么样的? 申请法国公司的流程 有匡威这个品牌的信息吗? 注册法国公司注册程序 Converse的鞋子的特点? 法国商标注册基本步骤都有哪些? converse 简介? 如何注册法国公司,中国人可以注册法国公司吗 谁能帮我把c100m5y60k0这个颜色用RGB模式表示出来。谢谢 制作函数y=1/x图像的VB6.0程序代码 网络用语bkpp是什么意思 bkpp在哪个app直播 bkpp是指什么 月经走了六天然后第六天又出血了血是黑褐色的事怎么回事? bkpp是真恋人吗 月经干净第六天又来了,而且血是褐色的,怎么回事啊? 如何看待bkpp的关系 法院传票通过什么渠道送的 法院送文书是什么意思 法院送传票的是什么人 法院去家里送材料是送什么? 法院送传票如果用邮寄的方式有什么条件? 法院送传票一般还送什么?具体点 法院一般以什么方式送传票 法院送传票的费用该谁出 法院送传票收费吗 法院传票寄送到什么地方? 法院传票首先送哪?