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

在编程中如何将图片放大

发布时间: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

阅读全文

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

热点内容
杭州it程序员对身体好不好 浏览:533
高新区编程加盟找哪家 浏览:22
服务器什么样的好卖 浏览:140
单片机原理及应用第二版例题答案 浏览:960
base64encoderjava 浏览:482
linux视频转换 浏览:695
linux与unixshell编程指南 浏览:133
vb6反编译程序错误 浏览:121
服务器弄挂有什么影响 浏览:302
安卓软件为什么运行不了 浏览:526
什么安卓手机是四方的 浏览:477
云服务器厂商租用多少钱 浏览:353
平安车贷解压要多久 浏览:416
乐一php程序员待遇 浏览:164
ZDM命令无法识别 浏览:922
解压小手工A4纸 浏览:983
钢筋加密区是几倍 浏览:671
编译程序代码软件 浏览:808
怎么恢复加密的东西 浏览:989
程序员卖茶 浏览:700