vb中使用getpixel和setpixel函数不能直接使用吗?为什么老是报错说未定义子函数或

作者&投稿:照裘 (若有异议请与网页底部的电邮联系)
vb中用getpixel和setpixel(作业要求)编百叶窗时,点第一次有效果,再点第二次或其他都没变化,求改正!~

我认为问题出在这里:
a = GetPixel(Picture1.hdc, X, Y)
b = SetPixel(Me.hdc, X, Y, a)

当你用一次循环,将这些点重设以后,再次来设置,就不会有什么变化了,我感觉应该加上一个恢复状态的语句。改变后,再恢复,然后再点才会有效果。

确实是这样的,运行GetPixel和SetPixel相当相当的慢,呵呵,特别是你想要绘制整个图片都用SetPixel的时候,哈哈,所以,不要这样来用

解决的方法:
1。如果你能解析bmp格式,那么,创建BMP图片,然后用LoadPicture加载到Picture中显示
2。如果你会用C++,那么用C++写一个控件,用于绘图
3。用C#或VB.net吧,处理起来相当的快速。

这两个函数属于Win API函数,需要之前用Declare来声明函数名和接口,你只要把下面两个函数接口定义放在最上面就可以用了。

Private Declare Function GetPixel Lib "gdi32" Alias "GetPixel" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long

Private Declare Function SetPixel Lib "gdi32" Alias "SetPixel" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long

回答补充问题:
方法一:要把声明放在所有代码的最上面,而不是你写的程序最上面。
方法二:或者新建一个模块Module,把这两个函数声明放在模块里面,并且把声明的开头Private换成Public也行。

把这两个函数放在代码开头处。


介绍 一下 魔兽争霸中各种英语代表的东西 如AC是弓箭手
而且可能会导致cdkey在ladder中被封停. Bser指有上述行为的玩家. Abuse: 滥用某种容易取胜的战术和部队. 例如, 如果某人突然发现一种可以充分利用娜迦海巫...例如告诉你的盟友 get some d Tank: 做动词用, (例如use your moutain gaint to tank) 指单位承受伤害的能力,通常用来保护其他的单位。作名词用的时候...

求用matlab制作简单动画实例
surf(sin(2*pi*j\/20)*Z,Z)axis(theAxes)fmat(:,j)=getframe;end 这里就是分别画每一帧的图像,此处我们的surf是分20份来画,坐标轴统一为之前的保存的坐标轴,把moviein结构体fmat的取为getframe,如图。5、movie(fmat,10);就是动画放10遍。6、全代码如下:x=-8:0.5:8;[XX,YY]=...

英雄啊,会编CAD的LSP么,帮忙做一个统计圆孔数量,孔径并用不同孔径符表 ...
(F11) Ctrl+X: 剪切所选择的内容 Ctrl+Y: 重做 Ctrl+Z: 取消前一步的操作 A: 绘圆弧 B: 定义块 C: 画圆 D: 尺寸资源管理器 E: 删除 F: 倒圆角 G: 对相组合 H: 填充 I: 插入 S: 拉伸 T: 文本输入 W: 定义块并保存到硬盘中 L: 直线 M: 移动 X: 炸开 V: 设置当前坐标 U: 恢复上...

电气三班c语言选择题
getchar()scanf()~B~~~8当用户要求输入的字符串中含有空格时,应使用的输入函数是()。scanf()getchar()gets()getc()~C~~~8当有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是()。gets(&s[0]);scanf("%s",s+1);gets(s);scanf("%s",s[1]);~D~~~8当以下叙述中错误的...

1. 编一个使用派生类的程序求圆柱体(Cylinder)的体积。设计一个圆类(C...
include <iostream> using namespace std;define PI 3.14 class point { public:point(int a,int b)private:int x,y;};class circle :public point { public:circle(int ,int ,int);double mianji() \/\/ 面积 private:int r;};circle::circle(int a,int b,int c):point(a,b),r(c...

病毒Win32.Troj.Agent.122880
[b]6、查看“svchost”进程[\/b]。 svchost.exe是Windows XP系统的一个核心进程。svchost.exe不单单只出现在Windows XP中,在使用NT内核的Windows系统中都会有svchost.exe的存在。一般在Windows 2000中svchost.exe进程的数目为2个,而在Windows XP中svchost.exe进程的数目就上升到了4个及4个以上。 [b]7、查看...

在JAVA中,定义一个接口,接口中有四个抽象方法:求面积方法、求周长方法...
return Math.PI*this.r*this.r;} \/\/求周长 public double getGirth() { return 2*this.r*Math.PI;} public void showArea() { System.out.println("圆面积:"+this.getArea());} public void showGirth() { System.out.println("圆周长:"+this.getGirth());} } \/\/定义长方形 class...

求国服80盗贼战斗和刺杀天赋的宝石附魔及输出手法.详细些.高端人士来...
追求单体极限的可以用下面的天赋: [ http:\/\/img.ngacn.cc\/attachments\/mon_201103\/10\/189_4d786dd6ef8e7.jpg ] 1.3 此外,针对冰龙等aoe压力较大的boss,推荐佯攻雕纹。2.常用宏:2.1嫁祸宏:a:\/script local u,pi="focus","嫁祸诀窍";if IsSpellInRange(pi,u)==1 and GetSpellCooldown(pi)==0 then...

如何用java语言编写一个计算圆的面积的程式?
如何用C语言计算圆的面积? 你定义的巨集:PI=3.14 这里没有指明PI的资料型别 在c语言中 浮点数没有指明型别的 预设为双精度double型的 而你定义的s、r都是单精度float 这样在执行s = r * r * PI 会发生型别不匹配的错误 一个简单的方法就是: float r,s 改为:double ...

python编写用pow()函数计算球的体积?
def getRandomValue():return numpy.random.random() 使用随机模块来计算 0 与 10 之间的随机整数。 表达式:random.randint(0, 10)代码块:import random 计算空值 在Python 表达式中,可通过 Python None 来计算空值。 注: 仅当该字段为空时,才可以进行以下计算。 使用Python None 计算空值。 表达式:None 相关...

古蔺县15121666026: vb中使用getpixel和setpixel函数不能直接使用吗?为什么老是报错说未定义子函数或 -
镇蝶银黄: 这两个函数属于Win API函数,需要之前用Declare来声明函数名和接口,你只要把下面两个函数接口定义放在最上面就可以用了.Private Declare Function GetPixel Lib "gdi32" Alias "GetPixel" (ByVal hdc As Long, ByVal x As Long, ByVal y ...

古蔺县15121666026: vb6中,使用getpixel和setpixel函数时,程序会卡几秒钟,哪位知道是什么回事?
镇蝶银黄: 确实是这样的,运行GetPixel和SetPixel相当相当的慢,呵呵,特别是你想要绘制整个图片都用SetPixel的时候,哈哈,所以,不要这样来用解决的方法:1.如果你能解析bmp格式,那么,创建BMP图片,然后用LoadPicture加载到Picture中显示2.如果你会用C++,那么用C++写一个控件,用于绘图3.用C#或VB.net吧,处理起来相当的快速.

古蔺县15121666026: VB中GetPixel函数的使用
镇蝶银黄: long和rgb的转换公式是: red = (color And &HFF): green = (color And 62580) / 256: blue = (color And &HFF000) / 65536

古蔺县15121666026: VB中GetPixel函数的使用 -
镇蝶银黄: 你的VB.NET? VB6里面我还没听过这个函数,我一般是用point函数返回RGB值,如果要转换首先用hex函数把long型整数转化为16进制数,然后每两个为一段就是RGB值了、

古蔺县15121666026: vb程序实现要用到set或get咋写 -
镇蝶银黄: 应该是按钮Command吧,不是button 应该在点击按钮事件中:Private Sub Command1_Click() Label1.Caption = Val(Label1.Caption) + 1 End Sub Private Sub Command2_Click() Label1.Caption = Val(Label1.Caption) - 1 If Val(Label1.Caption) End Sub 或使用函数,这里就不写了.好像没有使用get或者set的.

古蔺县15121666026: VB 直接读取图片上某几个点的像素值,不借用图片控件 -
镇蝶银黄: 网上有例子使用LoadPicture函数加载图片到PictureBox控件,然后通过GetPixel函数读取像素颜色.如下: Set pic.Picture = LoadPicture(FileName) Width = Int(pic.ScaleWidth / 15) Height = Int(pic.ScaleHeight / 15) For I = 1 To Width For J = 1 To ...

古蔺县15121666026: VB:set语句的用法 -
镇蝶银黄: set是给对象变量赋值.如:Dim MyLabel As Object '定义一个对象变量MyLabel Set MyLabel = Label1 '给MyLabel赋值(要注意Label1是窗体中实际存在的控件) MsgBox MyLabel.Caption '显示MyLabel的Caption属性值(相当于Label1.Caption)

古蔺县15121666026: 有关VB中取颜色值函数GetPixel的问题
镇蝶银黄: X 和 Y 座标以像素pixel为单位.GetPixel 只能获取有效窗范围内的点的颜色值.不能获取 “current clipping region”以外的颜色值.从GetPixel 的送返值可以判断函数调用是否失败.把你的屏幕分辨率提高些,看看行不行.(至少要1024)因为你的座标值1000.(你说:“上边坐标数值大于1000后,值就取不出来了“)

古蔺县15121666026: VB中什么是SET语句 -
镇蝶银黄: 以下是引用自VB MSDN的原文: Set 语句 将对象引用赋给变量或属性. 语法 Set objectvar = {[New] objectexpression | Nothing} Set 语句的语法包含下面部分: 部分 描述 objectvar 必需的.变量或属性的名称,遵循标准变量命名约定. New 可...

古蔺县15121666026: vb.net 如何使用的getpixel API函数 -
镇蝶银黄: 'api声明 Private Declare Function GetDC Lib "user32" Alias "GetDC" (ByVal hwnd As Long) As Long '获取指定窗口的设备场景,返回设备场景句柄 Private Declare Function GetPixel Lib "gdi32" Alias "GetPixel" (ByVal hdc As Long, ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网