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

在編程中如何將圖片放大

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

閱讀全文

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

熱點內容
排課走班源碼 瀏覽:222
程序員剛畢業去了小公司有發展嗎 瀏覽:90
速騰怎麼安裝安卓手機互聯 瀏覽:143
linux設備驅動程序代碼 瀏覽:301
伺服器的功耗怎麼看 瀏覽:651
app組件哪裡找 瀏覽:87
androidqq紅包 瀏覽:412
伺服器如何傳輸 瀏覽:456
如何快速將多個文件夾快速解壓縮 瀏覽:114
程序員睡前都在想什麼 瀏覽:37
少兒編程技能培訓心得 瀏覽:458
白命令 瀏覽:816
headfirstjavapdf 瀏覽:552
廣數980t怎麼編程 瀏覽:592
無邪app在哪裡下載 瀏覽:462
mac自帶php目錄 瀏覽:632
海淘小程序源碼 瀏覽:750
哪裡下載蘇寧秒達app 瀏覽:643
androidcmnet 瀏覽:31
易語言標題源碼 瀏覽:948