资源描述:
《本科《c程序设计》visual_c基础入门教程-第3课:使用鼠标》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、鼠标在系统屮显示为一个斜向的箭头%,发生鼠标动作时系统产生相应的事件消息,应用程序接收到消息后作出恰当的回应,从而完成命令操作;1、鼠标动作包括单击、双击、移动等,系统己经定义好了它们的标识符,分别如下:1)单击:鼠标的单击动作是指按键轻巧地按下去又抬起来,包括按下和抬起两个动作,有左键和右键之分,左键按下的标识符是WIVLLBUTTONDOWN,右键是WM_RBUTTONDOWN,而抬起则是把后面的单词DOWN改成成UP即可,当鼠标单击时系统就会发送这两个消息给应用程序,而应用程序的消息处理过程MainWndProc里头加入一段这两个消息的处理代码;2)双击:
2、双击一般指鼠标左键,迅速的两次单击,系统默认是0.5秒内,否则就是两次单击,双击时系统发送一个WM_LBUTTONDBLCLK消息给应用程序,然后应用程序的MainWndProc里头加上一段代码來处理这个消息:3)移动:在没有按键的情况下,移动鼠标,这时屏幕上的箭头鼠标指针也发生移动,这时系统将发送一个WM_M0USEM0VE消息,应用程序也可以加上一段代码來响应这个鼠标事件,如果应用程序中没有这一段代码,这个消息将由系统处理代为处理;4)鼠标的其他情况还包括拖动、同时按住组合键、进入、穿越、离开程序的窗口,这些动作也有相应的处理程序代码;2、鼠标消息鼠标消息是
3、一种结构类型,它在指明鼠标动作的同时还携带一些附加信息,其中的IParam参数中携带了鼠标的位置信息,另一个参数wParam则判断是否有键盘上的组合键按下;下面我们通过一个程序来看看鼠标的使用方法:1)新建一个名为Mouse的Win32Application工程,再新建一个名为Mouse的C/C++头文件和一个名为Mouse的C++源程序,输入程序的框架代码,框架代码经常用到,每次提前抄到本子上,或者打印下来,复制粘贴有时出现莫名其妙的“unexpectedend”错误,还是输进去的靠些(绿色部分是注释,必须以双斜杠“//”开头),有的一行太长会自动折到下一行:
4、头文件Mouse.h的内容是:〃申明函数原型LRESULTCALLBACKMainWndProc(HWND,UINT,WPARAM,LPARAM);BOOLInitApplication(HINSTANCE);BOOLInitlnstance(HINSTANCE,int);源程序Mouse.cpp的内容是:^include〈windows.h>^include^include"Mouse.h"HINSTANCEhlnst;HWNDhWndMain;intAPTENTRYWinMain(HINSTANCEhlnstance,HINSTANCEh
5、PrevInstance,LPSTRIpCmdLine,intnCmdShow){MSGmsg;//定义一个消息结构msgif(!InitApplication(hlnstance))return(FALSE);if(!Initlnstance(hlnstance,nCmdShow))return(FALSE);while(GotMessage(&msg,NULL,0,0)){TranslateMessage(&msg);DispatchMessage(&msg);}return(msg.wParam);}BOOLInitApplication(HINSTANC
6、Ehlnstance){WNDCLASSwcMouse;wcMouse,style二0;wcMouse.lpfnWndProc=(WNDPROC)MainWndProc;wcMouse.cbClsExtra=0;wcMouse.cbWndExtra=0;wcMouse.hlnstance=hlnstance;wcMouse.hlnstance=hlnstance;wcMouse.hlcon=LoadIcon(hlnstance,IDI_APPLTCATION);wcMouse.hCursor=LoadCursor(NULL,IDCARROW);wcMouse.h
7、brBackground=(HBRUSH)(14);wcMouse.lpszMenuName=NULL;wcMouse.lpszClassName=//MouseWClass,z;return(RegisterClass(&wcMouse));}BOOLInitlnstance(HINSTANCEhlnstance,intnCmdShow){hlnst=hlnstance;hWnc!Main=CreateWindow("MouseWClass","使用鼠标",WS^OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CWLS
8、EDEFAULT,CW_