十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
。net 不用api就行
10多年的雜多網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。營銷型網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整雜多建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“雜多網(wǎng)站設(shè)計(jì)”,“雜多網(wǎng)站推廣”以來,每個客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
縮放操作
Function 縮放(ByVal bitmap As Bitmap, ByVal 倍數(shù) As Single) As Bitmap
Dim w As Integer = bitmap.Width * 倍數(shù)
Dim h As Integer = bitmap.Height * 倍數(shù)
Dim tem As New Bitmap(w, h)
Dim g As Graphics = Graphics.FromImage(tem)
g.DrawImage(bitmap, New Rectangle(0, 0, w, h), New Rectangle(0, 0, bitmap.Width, bitmap.Height), GraphicsUnit.Pixel)
g.Dispose()
Return tem
End Function
鼠標(biāo)滾輪事件 MouseWheel
MouseEventArgs.Delta 值可以判斷滾動方向
在VB中,并沒有包含鼠標(biāo)滾輪的滾動事件,所以必須用API自己捕獲滾動信息并加以處理。主要需要用到CallWindowProc和SetWindowLong兩個函數(shù),請參考以下代碼:
’在模塊中
‘聲明方法
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
Declare Function SetWindowLong Lib "user32 " Alias "SetWindowLongA " (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Const GWL_WNDPROC = (-4)
Public Const WM_MOUSEWHEEL = H20A
Public PrevWndProc As Long
Function WndProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long ‘寫自己處理鼠標(biāo)滾動的事件,這里讓Form上下滾動
Dim t(0 To 1) As Integer
If uMsg = WM_MOUSEWHEEL Then
If wParam 0 Then 'backward
Form1.Top = Form1.Top + 10
Else 'forforward
Form1.Top = Form1.Top - 10
End If
Else
WndProc = CallWindowProc(PrevWndProc, hwnd, uMsg, wParam, lParam) ‘讓W(xué)indows處理其他事件
End If
End Function
然后在Form中寫入:
Option Explicit
Private Sub Form_Load()
PrevWndProc = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf WndProc) ‘讓W(xué)ndProc來處理該窗體的事件
End Sub
Private Sub Form_Unload(Cancel As Integer)
Dim lResult As Long
lResult = SetWindowLong(Me.hwnd, GWL_WNDPROC, PrevWndProc) ‘讓W(xué)indows默認(rèn)的函數(shù)來處理事件
End Sub
關(guān)于CallWindowProc和SetWindowLong您可以參考以下文章:
SetWindowLong
CallWindowProc
1、滾動條分為水平滾動條(HSCROLLBAR)和垂直滾動條(VSCROLLBAR)兩種,可以作為輸入設(shè)備或者速度、數(shù)量的指示器來使用. 2、基本屬性:object.max[=value],object.min[=value],最大最小范圍 object.value[=value],
攔截窗口程序消息可以解決
參考 VB王國榮API講座 講消息的那章
幾個API就可以搞定
點(diǎn)擊panel時得到panel的焦點(diǎn),就可以用鼠標(biāo)滾輪來控制滾動條了!代碼如下:
Private?Sub?Panel1_Click(ByVal?sender?As?Object,?ByVal?e?As?System.EventArgs)?Handles?Panel1.Click
Panel1.Focus()
End?Sub
VB可以使用子類化處理鼠標(biāo)滾輪消息。
新建工程
在窗體中添加滾動條VScroll1
'窗體代碼
Private Sub Form_Load()
'取得控件的句柄
hwndVS = VScroll1.hwnd
'保存smMap控件的默認(rèn)窗口消息處理函數(shù)地址
OldWindowProc = GetWindowLong(VScroll1.hwnd, GWL_WNDPROC)
'將smMap控件的消息處理函數(shù)指定為自定義函數(shù)NewWindowProc
Call SetWindowLong(VScroll1.hwnd, GWL_WNDPROC, AddressOf NewWindowProc)
End Sub
添加一模塊:
Option Explicit
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 Const GWL_WNDPROC = -4
Public Const WM_MOUSEWHEEL = H20A
Public OldWindowProc As Long '用來保存系統(tǒng)默認(rèn)的窗口消息處理函數(shù)的地址
Public hwndVS As Long '用來保存控件的句柄
'自定義的消息處理函數(shù)
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
'則對鼠標(biāo)滾輪事件進(jìn)行處理
If wParam = -7864320 Then '向下滾動
Form1.VScroll1.Value = Form1.VScroll1.Value + 1
ElseIf wParam = 7864320 Then '向上滾動
Form1.VScroll1.Value = Form1.VScroll1.Value - 1
End If
Else
'調(diào)用默認(rèn)窗口消息處理函數(shù)
NewWindowProc = CallWindowProc(OldWindowProc, hwnd, msg, wParam, lParam)
End If
End Function