c语言如何实现捕捉鼠标事件,怎么通过c++实现获取鼠标点击事件?

这个示例展示了如何使用Windows API创建一个简单的图形应用程序。用户可以通过左键拖动来绘制线条,右键点击则会刷新窗口。程序定义了窗口过程WinProc,处理WM_LBUTTONDOWN、WM_RBUTTONDOWN和WM_MOUSEMOVE等消息,实现画布上的绘图操作。
摘要由CSDN通过智能技术生成

a791b137af350ceacee0c8f742126968.png

ITMISS

#include #include LRESULT CALLBACK WinProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);POINT pt={0,0};int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd ){HWND hwnd;MSG msg;BOOL bRet;WNDCLASS wndcls;wndcls.style=CS_HREDRAW|CS_VREDRAW;wndcls.lpfnWndProc=WinProc;wndcls.cbClsExtra=0;wndcls.cbWndExtra=0;wndcls.lpszClassName=TEXT("wjbxngx");wndcls.lpszMenuName=NULL;wndcls.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);wndcls.hInstance=hInstance;RegisterClass(&wndcls);hwnd=CreateWindow(TEXT("wjbxngx"),TEXT("示例"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,600,400,NULL,NULL,hInstance,NULL);ShowWindow(hwnd,SW_SHOWNORMAL);UpdateWindow(hwnd);while ((bRet=GetMessage(&msg,hwnd,0,0))!=0){if (bRet==-1){return -1;}else{TranslateMessage(&msg);DispatchMessage(&msg);}}return msg.wParam;}LRESULT CALLBACK WinProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam){HDC hdc;TCHAR szChar[20];PAINTSTRUCT ps;switch(uMsg){case WM_LBUTTONDOWN:pt.x=LOWORD(lParam);pt.y=HIWORD(lParam);break;case WM_RBUTTONDOWN:InvalidateRect(hwnd,NULL,TRUE);break;case WM_MOUSEMOVE:if (wParam&MK_LBUTTON){hdc=GetDC(hwnd);MoveToEx(hdc,pt.x,pt.y,NULL);LineTo(hdc,LOWORD(lParam),HIWORD(lParam));pt.x=LOWORD(lParam);pt.y=HIWORD(lParam);ReleaseDC(hwnd,hdc);}break;case WM_PAINT:hdc=BeginPaint(hwnd,&ps);EndPaint(hwnd,&ps);break;case WM_CLOSE:if (IDYES==MessageBox(hwnd,TEXT("真的要退出吗?"),TEXT("信息"),MB_YESNO)){DestroyWindow(hwnd);}break;case WM_DESTROY:PostQuitMessage(0);break;default:return DefWindowProc(hwnd,uMsg,wParam,lParam);}return 0;}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值