社区
VB基础类
帖子详情
PaintPicture的用法
jiangjian0427
2002-08-08 10:52:20
谢谢
...全文
74
1
打赏
收藏
PaintPicture的用法
谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sail_about
2002-08-09
打赏
举报
回复
看帮助,呵呵
object.PaintPicture picture, x1, y1, width1, height1, x2, y2, width2, height2, opcode
PaintPicture 方法的语法包含下列部分:
object 可选的。一个对象表达式,其值为“应用于”列表中的一个对象。如果省略 object,带有焦点的 Form 对象缺省为 object。
Picture 必需的。要绘制到 object 上的图形源。Form 或 PictureBox 必须是 Picture 属性。
x1, y1 必需的。均为单精度值,指定在 object 上绘制 picture 的目标坐标(x-轴和y-轴)。object 的 ScaleMode 属性决定使用的度量单位。
Width1 可选的。单精度值,指示 picture 的目标宽度。object 的 ScaleMode 属性决定使用的度量单位。如果目标宽度比源宽度 (width2) 大或小,将适当地拉伸或压缩 picture。如果该参数省略,则使用源宽度。
Height1 可选的。 单精度值,指示 picture 的目标高度。object 的 ScaleMode 属性决定使用的度量单位。如果目标高度比源高度 (height2) 大或小,将适当地拉伸或压缩 picture。如果该参数省略,则使用源高度。
x2, y2 可选的。均为单精度值,指示 picture 内剪贴区的坐标(x-轴和y-轴)。object 的 ScaleMode 属性决定使用的度量单位。如果该参数省略,则缺省为 0。
Width2 可选的。单精度值,指示 picture 内剪贴区的源宽度。object 的 ScaleMode 属性决定使用的度量单位。如果该参数省略,则使用整个源宽度。
Height2 可选的。 单精度值,指示 picture 内剪贴区的源高度。object 的 ScaleMode 属性决定使用的度量单位。如果该参数省略,则使用整个源高度。
Opcode 可选的。是长型值或仅由位图使用的代码。它用来定义在将 pictur 绘制到 object 上时对 picture 执行的位操作(例如, vbMergeCopy 或 vbSrcAnd 操作符)。关于位操作符常数的完整列表,请参阅 Visual Basic Help 文件中的 RasterOp Constants 主题。
在使用opcode时有一些限制。例如,如果资源是图标或图元文件,则只能使用 vbSrcCopy,而不能使用其他的opcode;并且,与图案 (或 SDK 术语中的"画笔"),如 MERGECOPY、 PATCOPY、 PATPAINT 和 PATINVERT,相交互的opcode实际上是同目标的 FillStyle 属性交互。
注意 Opcode 用于将按位操作传递到位图。当传递其他图象类型时将一个值给该参数会造成“无效过程调用或参数”错误。这是设计的原因。要避免这个错误,对于除位图外的图象,将 Opcode 参数置为空。
说明
通过使用负的目标高度值 (height1) 和 / 或目标宽度值 (width1) ,可以水平或垂直翻转位图。
可以省略任何多个可选的尾部的参数 。如果省略了一个或多个可选尾部参数,则不能在指定的最后一个参数后面使用逗号。如果想指定某个可选参数,则必须先指定语法中出现在该参数前面的全部参数。
注意,在将一个.Bmp加载入 PictureBox 控件和使用 Windows API 函数 BitBlt() 添加图片之间有一点不同。当您对一个图象使用 BitBlt() 时,PictureBox 控件不知道象您使用 LoadPicture方法那样去调整大小。将 ScaleWidth 和 ScaleHeight 属性设置为图象的大小也不起作用。如果您想在使用 BitBlt 之后用 PictureBox 调整新图片的大小,必须用代码手工做,转换单位并处理边框,下面是如何这样做的一个简单示例:
Sub ResizePictureBoxToImage(pic as PictureBox, twipWd _
as Integer, twipHt as Integer)
' 该代码假设所有的单位都为缇。如果
' 不是,必须在调用该例程之前,转换为缇。
' 这里也假设图象显示在0,0处。
Dim BorderHt as Integer, BorderWd as Integer
BorderWd = Pic.Width - Pic.ScaleWidth
BorderHt = Pic.Height - Pic.ScaleHeight
pic.Move pic.Left, pic.Top, twipWd + BorderWd, _
twipHt + BorderHt
End Sub
贺兰_通用对话框 Ver 1.0.2
' 功 能:不使用控件,对Windows通用对话框进行自定义,核心包括一个封装的类和两个模块。 [更新历史] ◆ Ver 1.0.2 开发时间:2008-09-24 09:27 ~ 2008-09-24 12:04 ' 1、修正了没有设置预览或程序标志图片框时,对话框位置无法调整的问题; ' 2、增加了图片预览按比例显示,并显示图片宽x高和预览比例。 ' 3、增加参考资料:VB 取得图片大小 ◆ Ver 1.0.1 开发时间:2008-09-21 17:17 ~ 2008-09-22 17:41 ' 1、增加了字体对话框(预览时,几个下拉框要双击才能立即见到改变,字体颜色无法预览); ' 2、增加了颜色对话框 ' 特别注意:上面的两个对话框没有经过仔细的测试,可能使用时会遇到未知的问题! ' 注意:源代码(贺兰_通用对话框 Ver 1.0.1.rar)中不含参考资料和3张图片,若需要,请参考 Ver 1.0.0 ◆ Ver 1.0.0 开发时间:2008-09-16 15:17 ~ 2008-09-21 16:09 ' CCommonDialog.cls ' 功 能:使用 Windows 通用对话框,如下: ' 0、文件属性对话框 ' 1、打开对话框(可以提供某些文件预览) ' 2、保存对话框 ' 3、字体对话框(预览?) ' 4、颜色对话框 ' Ver 1.0.0 版本,只实现了0、1、2功能,3、4功能以后再做。因为一般打开、保存对话框用得多。 ' MDrawWaves.bas ' 功 能:给定一个Wave文件,画出其波形。 ' MCDHook.bas ' 功 能:对话框预览核心模块,实现回调函数,消息截取处理和其他功能。 ' 注 意:它里面的变量、函数等,一般不需要在外部调用,所有功能基本封装在 CCommonDialog 类中。 ' frmMain.frm ' 程序主窗体,演示 CCommonDialog 类的各种属性和方法。 还包括以下参考资料: CommonDialog Enhanced Callback
Paint
Pic
tu
re VB API创建窗口控件 播放.WAV文件,并显示其波形 打开对话框中选多文件 使用API创建Windows窗口控件 用API实现WINDOWS下的通用对话框 用MCI命令来实现多媒体的播放功能 增强型打开_保存对话框类 自定义系统的打开对话框 wave格式详解.txt 常见的影音及图片文件后缀名(按字母顺序排列).txt 利用MFC的CFileDialog生成Windows2000文件对话框.txt 音频文件常见后缀.txt 自定义VB系统控件.txt
在VB中用
Paint
pic
tu
re方法进行图形处理
<script type="text/javascript"
VB中windows API StretchBlt,BitBlt的应用
VB中windows API StretchBlt,BitBlt的应用前瞻:1.BitBlt,StretchBlt
用法
2.StretchBlt与
Paint
Pic
tu
re比较1.BitBlt函数函数原型:Declare Function BitBlt Lib "gdi32" _ ( _ ByVal hDestDC As Long, _ '目标句柄 ByVal x As Long, _
VB6给MDI窗口(父窗口)动态绘制背景的种种方法
调整BitBlt的参数,就跟调整
Paint
Pic
tu
re的参数一样简单,说白了
Paint
Pic
tu
re最终还是封装了BitBlt,当然你可以使用其他的绘图API,甚至直接操作位图的像素。那么,还有没有其他替代方案呢,当然,
Pic
tu
reBox最重要的属性是
Pic
tu
re,是一个I
Pic
tu
reDisp(Std
Pic
tu
re),而
Paint
Pic
tu
re方法就是。然而,问题来了,提示无效参数,毛啊!由于上面所说的MDI窗体的限制,常规的方法是不行了,现在先提供一个笨一点的方法,越笨越实用,也越简单。
VB中使用GDI+进行图像缩放的实例
VISUAL BASIC(VB)对图形图像的处理一直以来是弱项,并受到很多人的垢病。关于图形图像的放大缩小,一般使用
PIC
TU
REBOX的
PAINT
PIC
TU
RE方法来处理。但这个处理方法最大的问题就是图像的失真。比方说图像中原来有网格线的,处理以后网格线会丢失,处理效果不好。后来在网上找到几个材料,是关于GDI+的
用法
的。试验了一下,果然效果非凡。以下为程序处理的关...
VB基础类
7,763
社区成员
197,609
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章