欢迎来到天天文库
浏览记录
ID:20081651
大小:30.50 KB
页数:3页
时间:2018-10-08
《用vb编程如何实现用鼠标滚轮扩大和缩小窗体上图片?》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、请教:用vb编程如何实现用鼠标滚轮扩大和缩小窗体上的图片?2012-09-2515:54提问者:caijigao22
2、浏览次数:68次提交回答满意回答2012-09-2517:44添加一个模块,输入以下代码:PublicDeclareFunctionCallWindowProcLib"user32"Alias"CallWindowProcA"(ByVallpPrevWndFuncAsLong,ByValhwndAsLong,ByValMsgAsLong,ByValwParamAsLong,ByVallParamAsLong)AsLongPublicDeclareFunctionGetW
3、indowLongLib"user32"Alias"GetWindowLongA"(ByValhwndAsLong,ByValnIndexAsLong)AsLongPublicDeclareFunctionSetWindowLongLib"user32"Alias"SetWindowLongA"(ByValhwndAsLong,ByValnIndexAsLong,ByValdwNewLongAsLong)AsLongPublicDeclareFunctionGetCursorPosLib"user32"(lpPointAsPOINTAPI)AsLongPublicDeclareFunc
4、tionWindowFromPointLib"user32"(ByValxPointAsLong,ByValyPointAsLong)AsLongPublicConstGWL_WNDPROC=-4&PublicConstWM_MOUSEWHEEL=&H20APublicTypePOINTAPIxAsLongyAsLongEndTypePublicOldWindowProcAsLongPublicohwndAsLongPublicFunctionNewWindowProc(ByValhwndAsLong,ByValMsgAsLong,ByValwParamAsLong,ByVallPar
5、amAsLong)AsLongOnErrorResumeNextIfMsg=WM_MOUSEWHEELThenDimCurPointAsPOINTAPI,hwndUnderCursorAsLongGetCursorPosCurPointhwndUnderCursor=WindowFromPoint(CurPoint.x,CurPoint.y)IfhwndUnderCursor=ohwndThenIfwParam=-7864320ThenIfForm1.Picture1.Width6、e1.Width+300IfForm1.Picture1.Height600ThenForm1.Picture1.Width=Form1.Picture1.Width-300IfForm1.Picture1.Height>480ThenForm1.Picture1.Height=Form1.Picture1.Height-240EndIfEndIfElseN7、ewWindowProc=CallWindowProc(OldWindowProc,hwnd,Msg,wParam,lParam)EndIfEndFunction在Form1中放入一个Picture1控件,然后输入以下代码:PrivateSubForm_Load()Picture1.AutoRedraw=TruePicture1.Picture=LoadPicture("e:tmpcd1.gif")'图片文件名,自己改Picture1.Move0,0,6000,4800ohwnd=Picture1.hwndOldWindowProc=GetWindowLong(Picture1.h8、wnd,GWL_WNDPROC)CallSetWindowLong(Picture1.hwnd,GWL_WNDPROC,AddressOfNewWindowProc)EndSubPrivateSubPicture1_Resize()Picture1.PaintPicturePicture1.Picture,0,0,Picture1.ScaleWidth,Picture1.ScaleHeightEndSub
6、e1.Width+300IfForm1.Picture1.Height600ThenForm1.Picture1.Width=Form1.Picture1.Width-300IfForm1.Picture1.Height>480ThenForm1.Picture1.Height=Form1.Picture1.Height-240EndIfEndIfElseN
7、ewWindowProc=CallWindowProc(OldWindowProc,hwnd,Msg,wParam,lParam)EndIfEndFunction在Form1中放入一个Picture1控件,然后输入以下代码:PrivateSubForm_Load()Picture1.AutoRedraw=TruePicture1.Picture=LoadPicture("e:tmpcd1.gif")'图片文件名,自己改Picture1.Move0,0,6000,4800ohwnd=Picture1.hwndOldWindowProc=GetWindowLong(Picture1.h
8、wnd,GWL_WNDPROC)CallSetWindowLong(Picture1.hwnd,GWL_WNDPROC,AddressOfNewWindowProc)EndSubPrivateSubPicture1_Resize()Picture1.PaintPicturePicture1.Picture,0,0,Picture1.ScaleWidth,Picture1.ScaleHeightEndSub
此文档下载收益归作者所有