登录
首页 » VC++源码 » VC++基本鼠标操作——判断鼠标消息

VC++基本鼠标操作——判断鼠标消息

于 2022-03-19 发布 文件大小:19.76 kB
0 166
下载积分: 2 下载次数: 1

代码说明:

VC++基本鼠标操作——判断鼠标消息,操作方法:按下鼠标左键,移动鼠标即可绘制椭圆,直至释放左键!   void CBaseMouseDemoView::OnMouseMove(UINT nFlags, CPoint point)   {    if(bDrag)    {    ptUp=point;//记录鼠标的当前位置    DrawCircle();//画新圆    }    CView::OnMouseMove(nFlags, point);   }   void CBaseMouseDemoView::DrawCircle()   {    Invalidate(false);    CClientDC dc(this);//获取DC    CRect rect;    GetClientRect(rect); //获取客户窗口区域    CBrush brush(RGB(255,255,255));    dc.FillRect(rect,&brush);//填充背景色为白色    dc.Ellipse(ptDown.x,ptDown.y,ptUp.x,ptUp.y);//绘制矩形   }

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • VC++ 使用TRY-THROW-CATCH结构捕获处理异常
    VC++ 使用TRY-THROW-CATCH结构捕获处理异常,在编辑框中,要求输入100~500之间的整数,如果超过边界,认为是异常,使用TRY CATCH结构捕获处理异常,异常测试代码如下:   UpdateData(true);   try//捕获异常   {    if(m_num>500)    throw 1;//抛出异常    if(m_num
    2023-07-20 04:55:03下载
    积分:1
  • VC 重载打开文件对话框,添加删除按钮
    VC++ 重载打开文件对话框,添加删除按钮,实现思路:设置文件对话框的模板为IDD_MYFILEDLG,使用GetPathName();获取选中文件。打开文件对话框是这样实现的:   if( filedlg.DoModal ()==IDOK )//打开文件对话框    {    CString fileName = filedlg.GetFileTitle();    SetWindowText(fileName);    }   以上代码仅是参考,完整的代码文件请自行下载吧。
    2022-02-01 14:41:10下载
    积分:1
  • VC++三种直线扫描转换算法范例演示
    本源码演示了三种VC++直线扫描转换算法,这3种方式是:bresenham方法、数值微分法、中点画线法。本程序同时是一个MFC单文档程序,进行直线段扫面转换算法的算法验证。   1.使用Wizard建立单文档程序;   2.绘制20*20的网格线,格子X和Y方向间隔均为20像素,网格起始坐标在(20,20)。我们使用此网格模拟像素矩阵(),格子交叉点是像素中心。   3.输入直线段两端点,可使用以下两种方法之一:   a)对话框输入   b)鼠标在网格内以鼠标左键按下-拖动-抬起方式输入。注意:直线段两端点要自动取整到模拟的像素中心位置   4.进行直线段扫描转换,通过点击鼠标右键调用方式或者菜单调用的方式执行。计算完成后,将扫描转换结果,在模拟的像素矩阵中,使用圆形显示出来。   通过这个实验,我们可以熟悉扫描的算法,其中要注意的是判断直线的斜率,分情况处理竖直直线段、斜率绝对值大于1、斜率绝对值小于1的情况,这部分需要花费一些时间去算。总之还是对扫描算法的理解和编程基矗
    2022-03-19 09:46:38下载
    积分:1
  • VC++ 6.0 使用消息实现线程通信
    线程通信:使用消息实现线程通信,一个了解多线程与消息通信的例子,以下是实现的主要代码:   LRESULT CThreadCommunicationDlg::OnDisplayResult(WPARAM wParam,LPARAM lParam)   {    int nResult = (int)wParam;    SetDlgItemInt(IDC_STATIC_RESULT,nResult,FALSE);    return 0;   }   void CThreadCommunicationDlg::OnButtonCalculate()   {    m_pCalculateThread=    (CCalculateThread*)AfxBeginThread(RUNTIME_CLASS(CCalculateThread));    Sleep(200);    m_pCalculateThread->PostThreadMessage(WM_CALCULATE,m_nLastOperand,NULL);   }   完整的源代码请下载本源码包。
    2022-02-02 07:06:27下载
    积分:1
  • VC6.0 对画图文档实行序列化处理
    VC6.0 文档序列化实例——对画图文档实行序列化处理,文挡之序列化(Serialize)读写例子,代码翻译:一剑。   // 打印带水平线的文档名字   pDC->SetTextAlign(TA_LEFT);   pDC->TextOut(0,-25, strHeader); // 1/4 inch down   // 在文档头的下面画一条直线横穿页面   TEXTMETRIC textMetric;   pDC->GetTextMetrics(&textMetric);   int y = -35 - textMetric.tmHeight; // 横线在距离文本下方1/10 英寸处   pDC->MoveTo(0, y); // 从左边空白处   pDC->LineTo(pInfo->m_rectDraw.right, y); // 到右边空白处   y -= 25;   pInfo->m_rectDraw.top += y;
    2023-04-28 14:50:03下载
    积分:1
  • VC++ 6.0 弹球游戏&打砖块
    PenBall游戏源代码,VC++ 6.0 编写开发的弹球游戏&打砖块源代码,这个游戏的叫法很多了,有人叫做乒乓球游戏,有的叫“撞球游戏”,这里被称为弹球游戏和打砖块游戏,不管叫做么吧,大家一看到运行截图就明白了是什么游戏。这款撞球游戏分为三关,第三关是最难的,还有音效,操作挺方便,球拍自动跟随鼠标移动,运动自如。分享本源码主要是让大家参考一些从游戏中剥离出来的技巧,比如控制对象移动、碰撞检测反弹等,可用于其它的VC++开发项目中。
    2022-08-13 12:20:23下载
    积分:1
  • C++课程设计大作业_学生管理系统(含+实验报告)
    这个C++作业主要是编写一个学生成绩管理系统,资料中包括了实验文档报告和项目源代码,项目代码并不多,对学习有帮助。   1.设计目的:用计算机完成对学生成绩的管理。包括对计算机所储存信息的查询、修改、删除、统计等。利用简单容易操作的菜单界面,方便学校、教师等利用计算机的高效、智能化以及存储的便捷性对学生成绩进行管理,可以节省人力时间,安全便捷。   2.总体设计:学生成绩管理系统提供三大模块,即学生成绩信息维护,学生成绩信息查询,学生成绩统计。其中信息维护包括对学生信息的修改,删除和增加,信息查询实现通过学生学号或姓名查询成绩的功能。学生成绩统计则对不同科目不同分数段的学生进行统计,方便用户对学生成绩获得总体的了解和把握。   3.详细设计:首先为用户提供方便的菜单,利用数据输入输出流和规范化输出等实现。再由控制结构实现用户选择与系统功能的对应。利用文件输入输出使C++程序与其数据的存储所在得txt文件联系起来,并进行读写操作。利用2个string类型的数组存储学生姓名和学号,再利用3个int类型数组用来存储学生的三科成绩。   函数实现系统的功能。首先,通过一个getRow函数获得系统中目前存储的学生人数。再通过一个getID函数,将txt文件中的学生信息录入到之前声明的五个数组中。然后即可对学生数据进行操作。searchGrade可实现用户对学生成绩的查询,changeGrade可帮助用户修改学生的各项信息,addGrade可以向计算机存储中增加新的学生信息,countGrade可统计不同科目不同分数段的学生分布情况。另外,enterChoice函数用来帮助信息维护的用户对不同的维护选项进行选择,而saveResult则在用户对数据进行维护后进行文件的保存,完成C++程序与txt文件的数据交流。main函数主要进行控制结构的安排和变量的声明。   在全部功能实现并正常编译后,对程序进行了新的修改。在countGrade中提供了更多学生信息,完善了错误反馈机制。并对菜单进行了美化调整。对几个函数的位置作了调整。   经调试,程序能够快速准确的执行设计目的中的各项要求和期望,达到设计初衷。   所有这些资料,你都可以通过压缩包中的课程设计报告.doc文档来了解。
    2022-02-09 18:24:25下载
    积分:1
  • VC++ 获取所有进程并进行管理-进程管理器
    进程:进程管理器,VC++ 6.0枚举获取所有进程并进行管理-模拟一个进程管理器的写法,枚举Windows中所有正在运行的进程,本示例将演示如何获取进程路径,打开进程句柄,获取进程优先级,终止进程主函数,创建状态栏,获取当前行行号,在状态栏上显示时间,取得选择项目的索引,重新取得第一个位置,更新进程等。
    2022-01-22 05:53:39下载
    积分:1
  • VC++ MFC绘图打印技术范例
    VC++ 6.0 基于MFC的绘图及打印技术实例,附上了完整源码,打开程序后,可单击“测试”按钮,弹出绘图设置窗口,设置好参数绘图,然后打印出数据。方法步骤:   //创建画笔C++对象   CPen* pPenBlue = new CPen;   //创建画笔   pPenBlue->CreatePen(PS_SOLID,pDoc->m_thick,pDoc->m_color);   //选中当前画笔,并保存以前的画笔   CPen* pOldPen = pDC->SelectObject(pPenBlue);   POSITION posi=pDoc->m_PointList.GetHeadPosition();   while(posi)   {    CPoint point(pDoc->m_PointList.GetNext(posi));    pDC->Ellipse(point.x,point.y,point.x+    pDoc->m_long,point.y+pDoc->m_short);   }   //恢复旧画笔   pDC->SelectObject(pOldPen);   //删除新建的画笔对象   delete pPenBlue;   //设置映射模式   pDC->SetMapMode(MM_ANISOTROPIC);   CSize winSize = CSize(1024, 768);   //设定窗口大小   pDC->SetWindowExt(winSize);   //得到实际设备每逻辑英寸的象素数量   int xLogPixPerInch,yLogPixPerInch;   xLogPixPerInch=pDC->GetDeviceCaps(LOGPIXELSX);   yLogPixPerInch=pDC->GetDeviceCaps(LOGPIXELSY);   //得到设备坐标和逻辑坐标的比例   int xExt,yExt;   xExt=winSize.cx*xLogPixPerInch/96;   yExt=winSize.cy*yLogPixPerInch/96;   //设定视口大小   pDC->SetViewportExt(xExt,yExt);
    2022-01-25 14:09:09下载
    积分:1
  • VC 结合定时器隐藏进程一定时间
    VC++ 隐藏进程,这个例子结合了计时器来实现,不是永久隐藏,是隐藏进程一定时间,根据定时器返回的时间,重新显示进程。   要实现这个过程,可编写以下代码:   LPREGISTERSERVICEPROCESS lpRegisterServiceProcess;   //加载RegisterServiceProcess函数所在的链接库   hDLL = LoadLibrary("KERNEL32");   //得到RegisterServiceProcess函数的地址   lpRegisterServiceProcess = (LPREGISTERSERVICEPROCESS)GetProcAddress(hDLL, "RegisterServiceProcess");   //执行RegisterServiceProcess函数,在任务列表中隐藏程序   lpRegisterServiceProcess(GetCurrentProcessId(),1);   //卸载链接库   FreeLibrary(hDLL);   //设定定时器   SetTimer(0,m_nSeconds*1000,NULL);   //隐藏程序的同时,隐藏窗口   ShowWindow(SW_HIDE);   后续会卸载链接库,请下载源码查看源代码文件。
    2022-04-17 12:20:46下载
    积分:1
  • 696518资源总数
  • 106174会员总数
  • 31今日下载