导航:首页 > 编程语言 > 在编程中如何将图片放大

在编程中如何将图片放大

发布时间:2025-01-23 04:24:09

❶ 请教:用vb编程如何实现用鼠标滚轮扩大和缩小窗体上的图片

添加一个模块,输入以下代码:

Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Public Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long

Public Const GWL_WNDPROC = -4&
Public Const WM_MOUSEWHEEL = &H20A

Public Type POINTAPI
x As Long
y As Long
End Type

Public OldWindowProc As Long
Public ohwnd As Long

Public Function NewWindowProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
On Error Resume Next
If Msg = WM_MOUSEWHEEL Then
Dim CurPoint As POINTAPI, hwndUnderCursor As Long
GetCursorPos CurPoint
hwndUnderCursor = WindowFromPoint(CurPoint.x, CurPoint.y)
If hwndUnderCursor = ohwnd Then
If wParam = -7864320 Then
If Form1.Picture1.Width < Form1.ScaleWidth Then Form1.Picture1.Width = Form1.Picture1.Width + 300
If Form1.Picture1.Height < Form1.ScaleHeight Then Form1.Picture1.Height = Form1.Picture1.Height + 240
ElseIf wParam = 7864320 Then
If Form1.Picture1.Width > 600 Then Form1.Picture1.Width = Form1.Picture1.Width - 300
If Form1.Picture1.Height > 480 Then Form1.Picture1.Height = Form1.Picture1.Height - 240
End If
End If
Else
NewWindowProc = CallWindowProc(OldWindowProc, hwnd, Msg, wParam, lParam)
End If
End Function

在Form1中放入一个Picture1控件,然后输入以下代码:

Private Sub Form_Load()
Picture1.AutoRedraw = True
Picture1.Picture = LoadPicture("e:\tmp\cd1.gif") '图片文件名,自己改
Picture1.Move 0, 0, 6000, 4800
ohwnd = Picture1.hwnd
OldWindowProc = GetWindowLong(Picture1.hwnd, GWL_WNDPROC)
Call SetWindowLong(Picture1.hwnd, GWL_WNDPROC, AddressOf NewWindowProc)
End Sub

Private Sub Picture1_Resize()
Picture1.PaintPicture Picture1.Picture, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight
End Sub

阅读全文

与在编程中如何将图片放大相关的资料

热点内容
php正整数验证 浏览:363
有个腹黑程序员男友是什么体验 浏览:110
pdf添加文本框 浏览:770
系统文件夹很大没有文件 浏览:74
苏宁电器app如何还分期 浏览:635
苹果怎么在主屏幕创建文件夹 浏览:627
河南云服务器租用虚拟主机 浏览:361
centos修改ip命令 浏览:779
租用服务器属于什么服务类型 浏览:135
英雄联盟说没有网络连接到服务器地址 浏览:28
单片机周期信号波形识别 浏览:42
算法驱动的成长史 浏览:936
好又省APP怎么用 浏览:576
pdf在线格式转换jpg格式转换器 浏览:868
中兴捧月算法大赛第二场 浏览:15
穿云服务器 浏览:394
单片机核心电压表 浏览:151
最强大逃顶通达信指标源码 浏览:441
java程序员面试宝典欧立奇 浏览:457
cad命令不要跟着光标 浏览:200