黑客手册第七课 处理鼠标输入消息

黑客手册第七课 处理鼠标输入消息

ID:13493660

大小:33.83 KB

页数:4页

时间:2018-07-22

黑客手册第七课 处理鼠标输入消息_第1页
黑客手册第七课 处理鼠标输入消息_第2页
黑客手册第七课 处理鼠标输入消息_第3页
黑客手册第七课 处理鼠标输入消息_第4页
资源描述:

《黑客手册第七课 处理鼠标输入消息》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、黑客手册第七课处理鼠标输入消息本课中我们将学习如何在我们的窗口过程函数中处理鼠标按键消息。示例程序演示了如何等待左键按下消息,我们将在按下的位置显示个字符串。例子理论:和处理键盘输入样,WINDOWS将捕捉鼠标动作并把它们发送到相关窗口。这些活动包括左、右键按下、移动、双击等(译者注:新式鼠标还包括滚轮消息阳阳EEL)0WINDOWS并不像处理键盘输入那样把所有的鼠标消息都导向有输入焦点的窗口,任何鼠标经过的窗口都将接收到鼠标消息,无论有否输入焦点。另外,窗口还会接收到鼠标在非客户区移动的消息(WMNCMOVE),但大多

2、数的情况下我们都会将其忽略掉。对鼠标的每个按钮都有两个消息:阳LBUTTONDOl啊,阳RBUTTONDOl啊。对于三键鼠标还会有阳阳UTTONDOWN和阳阳UTTONUP消息,当鼠标在某窗口客户区移动时,该窗口将接收到阳MOUSEMOVE消息。个窗口若想处理阳LBUTTONDBCLK或阳RBUTTONDBCLK,那么它的窗口类必须有CSDBLCLKS风格,否则它就会接受到堆的按键起落(阳XBUTTONDOWN或阳XBUTTONUP)的消息。对于所有的消息,窗口过程函数传入的参数lParam包含了鼠标的位置,其中底位为x

3、坐标,高位为y坐标,这些坐标值都是相对于窗口客户区的左上角的值,wParam中则包含了鼠标按钮的状态。例子:.386•r【lodelflat,stdcalloptioncasemap:noneWinMainproto:DWORD,:DWORD,:DWORD,:DWORDincludemasm32includewindows.incincludemasm32includeuser32.incincludemasm32includekerne132.incincludemasm32includegdi

4、32.incincludelibmasm32libuser32.libincludelibmasm32libkerne132.1ibincludelibmasm32libgdi32.1ib.dataClassNamedb"SimpleWinClass",OAppNamedb"OurFirstWindow",OMouseClickdb0;0二noclickyet.data?hlnstanceHINSTANCE?CommandLineLPSTR?hitpointPOINT<>.codestart:invok

5、eGetModuleHandle,NULLmovhlnstance,eaxinvokeGetCommandLinemovCommandLine,eaxinvokeWinMain,hlnstance,NULL,CommandLine,SWSHOWDEFAULTinvokeExitProcess,eaxWinMainprochlnst:HINSTANCE,hPrevlnst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORDLOCALwc:WNDCLASSEXLOCALmsg:MSGLOCALhwnd

6、:HWNDmovwc.cbSize,SIZEOFWNDCLASSEXmovwc.style,CSHREDRAWorCSVREDRAWmovwc.lpfnWndProc,OFFSETWndProcmovwc.cbClsExtra,NULLmovwc.cbWndExtra,NULLpushhlnstpopwc.hlnstancemovwc.hbrBackgrounCOLORWINDOW+lmovwc.lpszMenuName,NULLmovwc.lpszClassName,OFFSETClassNameinvokeLoadl

7、con,NULL,IDIAPPLICATIONmovwc.hlcon,eaxmovwc.hlconSm,eaxinvokeLoadCursor,NULL,IDCARROWmovwc.hCursor,eaxinvokeRegisterClassEx,addrwcinvokeCreateWindowEx,NULL,ADDRClassName,ADDRAppName,WSOVERLAPPEDWINDOW,CWUSEDEFAULT,CWUSEDEFAULT,CWUSEDEFAULT,CWUSEDEFAULT,NULL,NUL

8、L,hlnst,NULLmovhwnd,eaxinvokeShowWindow,hwnd,SWSHOWNORMALinvokeUpdateWindow,hwnd.WHILETRUE.ENDWinvokeGetMessage,ADDRm吨,NULL,0,0.BREAK.IF(!eax)invokeDispatchM

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。