導航:首頁 > 編程語言 > 在編程中如何將圖片放大

在編程中如何將圖片放大

發布時間: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

閱讀全文

與在編程中如何將圖片放大相關的資料

熱點內容
問道端游下載了忘了在哪個文件夾 瀏覽:251
開源phpoa框架 瀏覽:293
惠普511類似文件夾圖標閃動 瀏覽:53
php通訊錄系統 瀏覽:73
javajar包maven 瀏覽:108
仿圖怪獸安卓源碼 瀏覽:977
程序員越來越困 瀏覽:865
女朋友java程序員 瀏覽:338
魔獸世界加密貨幣 瀏覽:783
程序員打卡日記 瀏覽:766
車間壓縮空氣有水怎麼處理 瀏覽:835
java類調用php 瀏覽:476
php時間控制 瀏覽:808
用流程圖表示演算法分類 瀏覽:931
本地git文件夾誤刪除怎麼恢復 瀏覽:748
java快速開發平台開源 瀏覽:996
java實戰從入門 瀏覽:155
javahello程序 瀏覽:13
java系統輸出 瀏覽:934
430單片機存儲 瀏覽:396