如何实现picturebox图形的平移和缩放??

louisbadbad 2004-05-05 01:52:46
我在picturebox下绘制图形,然后要实现这些图形的平移和缩放,请大家help!
...全文
167 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
louisbadbad 2004-05-07
  • 打赏
  • 举报
回复
问题解决了
louisbadbad 2004-05-05
  • 打赏
  • 举报
回复
我也郁闷的很,但就是报错!
谁帮我看看,留下e-mail!多谢了!
hhyttppd 2004-05-05
  • 打赏
  • 举报
回复
看这一大堆声名我就头痛,没看出有什么问题。
mycoldboy 2004-05-05
  • 打赏
  • 举报
回复
在里面放个image框
BitBlt 2004-05-05
  • 打赏
  • 举报
回复
你第一次帖的代码,没有任何问提!

hSorcDC&未定义,可以不定义的,此处不应该报错。
louisbadbad 2004-05-05
  • 打赏
  • 举报
回复
'Private Sub CANVASSAVE()
''BitBlt method
'hSorcDC& = Picture1.hdc
'hDestDC& = picCanvasStore.hdc
'dwRop& = &HCC0020 'Src to Dest
'SorcX = 0: SorcY = 0
'DestX = 0: DestY = 0
'nWidth = picCanvasStore.Width
'nHight = picCanvasStore.Height
'Success& = BitBlt(hDestDC&, DestX, DestY, nWidth, nHight, hSorcDC&, SorcX, SorcY, dwRop&)
'End Sub
'Private Sub CANVASRESTORE()
''BitBlt method
'hSorcDC& = picCanvasStore.hdc
'hDestDC& = Picture1.hdc
'dwRop& = &HCC0020 'Src to Dest
'SorcX = 0: SorcY = 0
'DestX = 0: DestY = 0
'nWidth = Picture1.Width
'nHight = Picture1.Height
'Success& = BitBlt(hDestDC&, DestX, DestY, nWidth, nHight, hSorcDC&, SorcX, SorcY, dwRop&)
'Picture1.Refresh
'End Sub
BitBlt 2004-05-05
  • 打赏
  • 举报
回复
帖一大堆声明干什么?
你的代码呢?
louisbadbad 2004-05-05
  • 打赏
  • 举报
回复
Option Base 1
DefInt A-Q 'a-q integers
DefSng R-Z 'rst, uvw, xyz real

'Copy one array to another of same number of bytes
'Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
'(Destination As Any, Source As Any, ByVal Length As Long)
'------------------------------------------------------------------------------

'Used to extract small bitmap from a large one and show shrunken bitmap
Public 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

Public Declare Function StretchBlt Lib "gdi32" (ByVal hdc 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 nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long

'------------------------------------------------------------------------------

'To get dimensions of GIF's & JPG's
Declare Function GetObjectAPI Lib "gdi32" Alias "GetObjectA" _
(ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
Type BITMAP
bmType As Long
bmWidth As Long
bmHeight As Long
bmWidthBytes As Long
bmPlanes As Integer
bmBitsPixel As Integer
bmBits As Long
End Type
'Dim bmp As BITMAP
'------------------------------------------------------------------------------

'To move & get cursor postion
Public Declare Sub SetCursorPos Lib "user32" (ByVal IX As Long, ByVal IY As Long)
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
'------------------------------------------------------------------------------

'Windows API - much faster then VB's PSet and Point
Public Declare Function SetPixelV Lib "gdi32" _
(ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal crColor As Long) As Long
Public Declare Function GetPixel Lib "gdi32" _
(ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long

'------------------------------------------------------------------------------
'Draw polyline
Public Declare Function Polyline Lib "gdi32" (ByVal hdc As Long, _
lpPoint As POINTAPI, ByVal nCount As Long) As Long
Public Type POINTAPI: kX As Long: kY As Long: End Type
'------------------------------------------------------------------------------
'For shading & fill

Public Declare Function CreatePen Lib "gdi32" _
(ByVal nPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As Long
Public Declare Function ExtFloodFill Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, _
ByVal Y As Long, ByVal crColor As Long, ByVal fuFillType As Long) As Long

Public Declare Function CreateBitmap Lib "gdi32" (ByVal nWidth As Long, _
ByVal nHeight As Long, ByVal nPlanes As Long, ByVal nBitCount As Long, lpBits As Any) As Long

Public Declare Function CreatePatternBrush Lib "gdi32" (ByVal hBitmap As Long) As Long

'------------------------------------------------------------------------------
'Selecting pens & clearing up API Objects & Device Contexts
Public Declare Function SelectObject Lib "gdi32" _
(ByVal hdc As Long, ByVal hObject As Long) As Long
Public Declare Function DeleteObject Lib "gdi32" _
(ByVal hObject As Long) As Long
Public Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
BitBlt 2004-05-05
  • 打赏
  • 举报
回复
把option explicit去掉。
或声明所有的变量。
louisbadbad 2004-05-05
  • 打赏
  • 举报
回复
我用但是报错,给你看看程序
module里面写的

Public 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

Public Declare Function StretchBlt Lib "gdi32" (ByVal hdc 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 nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long

form里面写的在picturebox_mouseup是调用
Private Sub CANVASSAVE()
'BitBlt method
hSorcDC& = Picture1.hdc
hDestDC& = picCanvasStore.hdc
dwRop& = &HCC0020 'Src to Dest
SorcX = 0: SorcY = 0
DestX = 0: DestY = 0
nWidth = picCanvasStore.Width
nHight = picCanvasStore.Height
Success& = BitBlt(hDestDC&, DestX, DestY, nWidth, nHight, hSorcDC&, SorcX, SorcY, dwRop&)
End Sub
说hSorcDC&未定义
瓯越浪子 2004-05-05
  • 打赏
  • 举报
回复
请具体说一下号码
BitBlt 2004-05-05
  • 打赏
  • 举报
回复
平移用bitblt,缩放用stretchblt.
或者都用paintpicture
没法下载,到这里折腾一把试试。 本文由abc2253130贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 C#(WINFORM)学习 一、 C#基础 基础 类型和变量 类型和变量 类型 C# 支持两种类型:“值类型”和“引用类型”。值类型包括简单类型(如 char、int 和 float 等)、枚举类型和结构类型。引用类型包括类 (Class)类 型、接口类型、委托类型和数组类型。 变量的类型声明 变量的类型声明 每个变量必须预先声明其类型。如 int a; int b = 100; float j = 4.5; string s1; 用 object 可以表示所有的类型。 预定义类型 下表列出了预定义类型,并说明如何使用。 类型 object 说明 所有其他类型的最终 基类型 字符串类型; 字符串是 Unicode 字符序列 8 位有符号整型 16 位有符号整型 32 位有符号整型 64 位有符号整型 示例 object o = null; 范围 string sbyte short int long string s = "hello"; sbyte val = 12; short val = 12; int val = 12; long val1 = 12; -128 到 127 -32,768 到 32,767 -2,147,483,648 2,147,483,647 -9,223,372,036,854,775,808 到 第1页 C#(WINFORM)学习 long val2 = 34L; 到 9,223,372,036,854,775,807 byte ushort 8 位无符号整型 16 位无符号整型 byte val1 = 12; ushort val1 = 12; uint val1 = 12; uint 32 位无符号整型 uint val2 = 34U; ulong val1 = 12; ulong val2 = 34U; ulong 64 位无符号整型 ulong val3 = 56L; ulong val4 = 78UL; float 单精度浮点型 float val = 1.23F;7 位 double val1 = 1.23; double 双精度浮点型 double val2 = ±5.0 × 10?324 ±1.7 × 10 308 0 到 255 0 到 65,535 0 到 4,294,967,295 0 到 18,446,744,073,709,551,615 ±1.5 × 10?45 ±3.4 × 10 38 到 到 4.56D;15-16 布尔型;bool 值或为 真或为假 字符类型;char 值是 一个 Unicode 字符 精确的小数类型, 具有 28 个有效数字 bool val1 = true; bool val2 = false; char val = 'h'; decimal val = bool char decimal DateTime ±1.0 × 10?28 ±7.9 × 10 28 到 1.23M;28-29 变量转换 简单转换: float f = 100.1234f; 可以用括号转换: short s = (short)f 也可以利用 Convert 方法来转换: string s1; s1=Convert.ToString(a); MessageBox.Show(s1); 常用 Convert 方法有: 第2页 C#(WINFORM)学习 C# Convert.ToBoolean Convert.ToByte Convert.ToChar Convert.ToDateTime Convert.ToDecimal Convert.ToDouble Convert.ToInt16 Convert.ToInt32 Convert.ToInt64 Convert.ToSByte Convert.ToSingle Convert.ToString Convert.ToUInt16 Convert.ToUInt32 Convert.ToUInt64 备注 Math 类 常用科学计算方法: C# Math.Abs Math.Sqrt Math.Ro

7,759

社区成员

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

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