农村婚礼门口布置图片:VB !!!!还可以追加50分 !!!

来源:百度文库 编辑:中科新闻网 时间:2024/05/03 16:41:17
要在PictureBox中加入多个 TextBox,CommandButton控件怎么使用HscrollBar\VScrollBar来实现全面显示所加的控件.(因为窗体已经固定了大小,所以加上的PictureBox有限制只能使用滑动条来显示里面的控件!!!)

支持楼上的意见,再加上以下代码实现鼠标滚轮就更完美了!
MfgMonth:是滚动条的name
模块:
Public Const GWL_WNDPROC = (-4)
Public Const WM_COMMAND = &H111
Public Const WM_MBUTTONDOWN = &H207
Public Const WM_MBUTTONUP = &H208
Public Const WM_MOUSEWHEEL = &H20A
Public Oldwinproc 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 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 Function FlexScroll(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
'支持滚轮的滚动 Yu 2004-5-10 15:33
Select Case wMsg

Case WM_MOUSEWHEEL

Select Case wParam

Case -7864320 '向下滚
SendKeys "{PGDN}"

Case 7864320 '向上滚
SendKeys "{PGUP}"

End Select

End Select

FlexScroll = CallWindowProc(Oldwinproc, hWnd, wMsg, wParam, lParam)

End Function
以下代码写在窗体里面
Private Sub MfgMonth_GotFocus()

Oldwinproc = GetWindowLong(Me.hWnd, GWL_WNDPROC)
SetWindowLong Me.hWnd, GWL_WNDPROC, AddressOf FlexScroll
End Sub

Private Sub MfgMonth_LostFocus()
SetWindowLong Me.hWnd, GWL_WNDPROC, Oldwinproc

End Sub

你需加载两个PictureBox,其中一个包含在另一个中,前一个PictureBox的高度或长度设置的大一些,这时可由HscrollBar\VScrollBar来改变前一个PictureBox的属性LEFT或TOP值来移动它在后一个PictureBox内的位置.

支持楼上的意见,这是最简单的方法了。