
vb getpixel函数的问题,哪位大侠知道请告诉我!妈妈说标题要长……
问题如下:窗体上有两个形状,我用midx和midy表示这两个形状连线的中心的位置。窗体上是有背景图画的,我要想实现用getpixel函数获取这个中心点处的颜色值。但是不知...
问题如下:
窗体上有两个形状,我用midx和midy表示这两个形状连线的中心的位置。窗体上是有背景图画的,我要想实现用getpixel函数获取这个中心点处的颜色值。
但是不知道为什么,s的值是-1,颜色无法取到,label1的背景颜色不变。
还有就是me.hwnd的值每次都会变(小弟对句柄从未接触,是不是每次运行系统都会给窗体一个随机的句柄?)。
代码如下:
Private Sub Command1_Click()
midx = Val(((Shape1.Left) + (Shape2.Left)) / 2)
midy = Val(((Shape1.Top) + (Shape2.Top)) / 2)
s = GetPixel(Me.hwnd,midx,midy)
r = Val(a) And &HFF '分离出红色
g = (Val(a) And 65280) \ 256 '分离出绿色
b = (Val(a) And &HFF0000) \ 65536 '分离出蓝色
Label1.BackColor = RGB(r, g, b)
End Sub 展开
窗体上有两个形状,我用midx和midy表示这两个形状连线的中心的位置。窗体上是有背景图画的,我要想实现用getpixel函数获取这个中心点处的颜色值。
但是不知道为什么,s的值是-1,颜色无法取到,label1的背景颜色不变。
还有就是me.hwnd的值每次都会变(小弟对句柄从未接触,是不是每次运行系统都会给窗体一个随机的句柄?)。
代码如下:
Private Sub Command1_Click()
midx = Val(((Shape1.Left) + (Shape2.Left)) / 2)
midy = Val(((Shape1.Top) + (Shape2.Top)) / 2)
s = GetPixel(Me.hwnd,midx,midy)
r = Val(a) And &HFF '分离出红色
g = (Val(a) And 65280) \ 256 '分离出绿色
b = (Val(a) And &HFF0000) \ 65536 '分离出蓝色
Label1.BackColor = RGB(r, g, b)
End Sub 展开
2个回答
展开全部
不用API看看
Private Sub Command1_Click()
Dim midx As Long
Dim midy As Long
Dim s As Long
Dim r As Long
Dim g As Long
Dim b As Long
midx = Val(((Shape1.Left) + (Shape2.Left)) / 2)
midy = Val(((Shape1.Top) + (Shape2.Top)) / 2)
s = Form1.Point(midx, midy)
r = s Mod 256 '分离出红色
g = (s \ 256) Mod 256 '分离出绿色
b = s \ 256 \ 256 '分离出蓝色
Label1.BackColor = RGB(r, g, b)
End Sub
Private Sub Command1_Click()
Dim midx As Long
Dim midy As Long
Dim s As Long
Dim r As Long
Dim g As Long
Dim b As Long
midx = Val(((Shape1.Left) + (Shape2.Left)) / 2)
midy = Val(((Shape1.Top) + (Shape2.Top)) / 2)
s = Form1.Point(midx, midy)
r = s Mod 256 '分离出红色
g = (s \ 256) Mod 256 '分离出绿色
b = s \ 256 \ 256 '分离出蓝色
Label1.BackColor = RGB(r, g, b)
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询