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

在編程中如何將圖片放大

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

閱讀全文

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

熱點內容
雲記app怎麼寫字視頻 瀏覽:595
如何進入我的世界臟小豆的伺服器 瀏覽:39
哪裡找到轉轉app 瀏覽:579
蘋果二次app怎麼注冊 瀏覽:584
國際服體驗服伺服器為什麼爆滿 瀏覽:111
微信商城模板源碼 瀏覽:433
網頁的源碼怎麼讀取 瀏覽:399
ubuntu命令打開軟體 瀏覽:760
如何實現對講頻道加密 瀏覽:348
福州8000的程序員去深圳多少 瀏覽:641
保存加密是什麼意思 瀏覽:42
安裝不了軟體顯示加密目錄 瀏覽:910
php53下載64位 瀏覽:97
osip源碼結構 瀏覽:956
如何刪除加密網站 瀏覽:714
亞太碳交易app怎麼用 瀏覽:955
怎麼推銷程序員 瀏覽:500
程序員再就業求助 瀏覽:106
知網程序員如何做產品 瀏覽:531
圖片怎麼樣用文件夾發送 瀏覽:33