- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
05键盘和鼠标应用
case WM_PAINT: hdc=BeginPaint(hwnd,ps); hpen=(HPEN)GetStockObject(BLACK_PEN); SelectObject(hdc,hpen); Rectangle(hdc,50,50,350,350); MoveToEx(hdc,50,150,NULL); LineTo(hdc,350,150); MoveToEx(hdc,50,250,NULL); LineTo(hdc,350,250); MoveToEx(hdc,150,50,NULL); LineTo(hdc,150,350); MoveToEx(hdc,250,50,NULL); LineTo(hdc,250,350); EndPaint(hwnd,ps); break; case WM_DESTROY: PostQuitMessage(0); default: return DefWindowProc(hwnd,message,wParam,lParam); } return(0); } 【6-4】编写一个鼠标应用程序,按下鼠标左键在窗口中移动时,将按下左键时所在点和当前点所形成的矩形涂成灰色,此时光标为十字型。当抬起鼠标左键时,将前面所绘制度矩形拉伸到整个窗口,拉伸过程中将光标设置为沙漏型。然后,若双击鼠标的左键,则灰色消失,窗口恢复到初始状态。 void InvertBlock (HWND hwnd, POINT ptBeg, POINT ptEnd) { HDC hdc ; hdc = CreateDC (DISPLAY, NULL, NULL, NULL) ; ClientToScreen (hwnd, ptBeg) ;//转换指定窗口的客户区内的点的坐标 ClientToScreen (hwnd, ptEnd) ; PatBlt (hdc, ptBeg.x, ptBeg.y, ptEnd.x - ptBeg.x, ptEnd.y - ptBeg.y,DSTINVERT) ; //这个函数在矩形区内用当前的画笔重画背景和前景*/ DeleteDC (hdc) ; } LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam,LPARAM lParam) { static BOOL operate=FALSE,ready=TRUE; static POINT BeginP,EndP; static RECT rect={0,0,0,0} ; HDC hdc ; PAINTSTRUCT PtStr; HBRUSH hBrush; switch (message) { case WM_LBUTTONDOWN: if ((!operate)ready) { operate=TRUE ; //左键击活俘获 ready=FALSE; SetCapture (hwnd) ;//把所有的鼠标信息输入到被左键击活的窗口. SetCursor (LoadCursor (NULL, IDC_CROSS)) ; //载入光标 BeginP.x=LOWORD(lParam); BeginP.y=HIWORD(lParam); } return 0 ; case WM_MOUSEMOVE: if (operate) { EndP.x=LOWORD(lParam); EndP.y=HIWORD(lParam); rect.left=BeginP.xEndP.x?BeginP.x:EndP.x; rect.right=BeginP.xEndP.x?BeginP.x:EndP.x; rect.top=BeginP.yEndP.y?BeginP.y:EndP.y; rect.bottom=BeginP.yEndP.y?BeginP.y:EndP.y; SetCursor (LoadCursor (NULL, IDC_WAIT)) ; //载入沙漏光标
文档评论(0)