登录
首页 » VC++源码 » VC++在视图中使用鼠标进行绘图操作(涂鸦)

VC++在视图中使用鼠标进行绘图操作(涂鸦)

于 2023-04-03 发布 文件大小:20.71 kB
0 149
下载积分: 2 下载次数: 1

代码说明:

VC++ ——在视图中使用鼠标进行绘图操作(涂鸦),按下鼠标左键,载入"十字"光标,移动鼠标即可实现绘制图形,但窗口不能自动重绘,定义各变量及具体实现:   void CBaseDocViewDemo1View::OnLButtonDown(UINT nFlags, CPoint point)   {    SetCursor(m_Hcursor);//使用新光标    m_bDraw=TRUE;//进入绘图状态    m_pOld=point;    SetCapture();//捕捉鼠标    CRect rect;    GetClientRect(&rect);//获取客户窗口矩形区域    ClientToScreen(&rect);//转换为屏幕坐标    ClipCursor(rect);//限定鼠标不能移出客户窗口    CView::OnLButtonDown(nFlags, point);   }      void CBaseDocViewDemo1View::OnLButtonUp(UINT nFlags, CPoint point)   {    m_bDraw=FALSE;//取消绘图状态    ReleaseCapture();//释放鼠标捕捉    ClipCursor(NULL);//取消鼠标区域的限制    CView::OnLButtonUp(nFlags, point);   }

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

发表评论

0 个回复

  • VC++ 字体处理:创建4种类型的字体
    VC++ 字体处理:创建4种类型的字体,第一种方法:使用CreateFontIndirect创建字体,第二种方法:使用CreateFont创建字体;第三种方法:使用CreatePointFontIndirect创建字体;第四种方法: 使用CreatePointFont创建字体;
    2022-03-24 01:42:11下载
    积分:1
  • VC++ CREATE VIEW语句动态创建数据库视图
    VC++ 动态创建视图,使用CREATE VIEW语句动态创建数据库视图,具体请下载本源码测试,需要提前准备好数据库。需要导入一个ADO动态链接库msado15.dll,该动态库位于系统盘下的“Program FilesCommon FilesSystemado”目录下。数据库连接好才可以使用本程序动态创建视图。
    2022-08-03 17:42:23下载
    积分:1
  • VC++ 使用断言宏检测程序的运行状态
    VC++ 使用断言宏检测程序的运行状态,这是一个VC++6.0 书中的代码,我没有搞懂是什么意思,检测程序运行状态的,里面还包括了数组的使用、排序方法、产生随机种子、输出排序后的数组顺序等,
    2023-03-28 12:15:04下载
    积分:1
  • VC++基本鼠标操作——判断鼠标消息
    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);//绘制矩形   }
    2022-03-19 16:04:24下载
    积分:1
  • VC 随机数选号程序
    VC 随机数选号程序 源代码,窗口中的每一个文本框对应一个随机数数组,当点击开始按钮后,这些数组各自为战,分别生成不同的随机数,当用户点击停止后,各个文本框中的随机数是不同的,由此可生成一个随机选号程序。   你可学习到生成随机数的线程、更新编辑框数字的线程、生成随机数、开始选号、更新按钮状态等相关的事件处理操作。
    2022-03-12 18:31:14下载
    积分:1
  • 参考性极强的一款VC推箱子游戏
    参考性极强的一款VC推箱子游戏源码,带背景音乐可自定义关卡的推箱子游戏,关于玩法就不多介绍了吧:选中游戏界面的"游戏"|"游戏开始"来开始游戏。游戏以键盘来进行操作,玩家利用方向键把地图中的箱子推到指定位置。当玩家把全部的箱子都放置完毕时,玩家胜利进入下一关。如果玩家无法完成任务,则玩家失败,可自行选择重新游戏,还是从新关口游戏。   Debug中包括了音效文件和map文件,并可简单设置地图等操作,游戏运行界面如示例截图所示。
    2022-04-26 16:06:04下载
    积分:1
  • VC 按1:1 按宽度和高度 平铺拉伸放大缩小图片
    本程序为VC++缩放图片的小示例,可按宽度、高度、充满、居中显示等多种方式显示图片,具体来说可完成以下放大或缩小图片的功能:   //1:1比例,不放大也不缩小:   void CZoomImgDemoDlg::On11()   {    m_wndImage.SetStrechType(STRECH_1_1);   }   //按宽度放大:   void CZoomImgDemoDlg::OnFullX()   {    m_wndImage.SetStrechType(STRECH_FULL_X);   }   //按高度   void CZoomImgDemoDlg::OnFullY()   {    m_wndImage.SetStrechType(STRECH_FULL_Y);   }   //充满窗口   void CZoomImgDemoDlg::OnFull()   {    m_wndImage.SetStrechType(STRECH_FULL);   }   //居中显示,大小为窗口的一半   void CZoomImgDemoDlg::OnCenter()   {    m_wndImage.SetStrechType(STRECH_CENTER);   }
    2022-01-28 02:37:20下载
    积分:1
  • VC++ 创建WinExample和MFCExample窗口程序演示
    VC++ WinExample和MFCExample程序演示,是创建此两类程序的演示,一种是使用WINAPI的方式 创建程序窗口,另一种是采用MFC方式创建窗口,下面列举一上结使用WINAPI方式创建窗口的具体代码,完整代码请下载本源码。   // 创建窗口   hWnd = CreateWindow("HelloMsg",// 窗口类名    "我的窗口", // 窗口标题    WS_OVERLAPPEDWINDOW,// 窗口样式    CW_USEDEFAULT,// 窗口最初的x位置    CW_USEDEFAULT,// 窗口最初的y位置    CW_USEDEFAULT,// 窗口的宽度    CW_USEDEFAULT,// 窗口的高度    NULL,// 父窗口句柄    NULL,// 窗口菜单句柄    hInstance,// 应用程序实例句柄    NULL);// 创建窗口的参数窗口消息处理函数   LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)   {    switch (uMsg)    {    case WM_LBUTTONDOWN:// 鼠标左键按下消息    MessageBox(NULL, "欢迎进入Visual C++!", "问候", 0);    break;    case WM_DESTROY:// 窗口销毁消息    PostQuitMessage(0);    break;    default:    // 默认消息处理函数    return DefWindowProc(hWnd, uMsg, wParam, lParam);    }    return 0;   }
    2022-09-16 09:05:03下载
    积分:1
  • VC++ 获取所有进程并进行管理-进程管理器
    进程:进程管理器,VC++ 6.0枚举获取所有进程并进行管理-模拟一个进程管理器的写法,枚举Windows中所有正在运行的进程,本示例将演示如何获取进程路径,打开进程句柄,获取进程优先级,终止进程主函数,创建状态栏,获取当前行行号,在状态栏上显示时间,取得选择项目的索引,重新取得第一个位置,更新进程等。
    2022-01-22 05:53:39下载
    积分:1
  • VC6.0 使用信号量Semaphore实现线程的同步
    VC6.0 使用信号量Semaphore实现线程的同步,使用信号量实现线程同步,设置访问保护对象的最多线程数为2,确定当前已经启动运行的线程数目,可以创建线程。   CWinThread* pThread=AfxBeginThread(ThreadProc,&m_Edit);//开辟一个工作线程,   int thread=0;//全局变量记录当前运行线程的数目   CSemaphore mySemaphore(2,2);//创建CSemaphore类对象   UINT ThreadProc(LPVOID pParam)//工作线程入口函数   {    CEdit *pedit=(CEdit*)pParam;    CString str;    thread++;//线程数目加1    str.Format("%d",thread);    pedit->SetWindowText(str);//编辑框显示    CSingleLock singlelock(&mySemaphore);//创建CSingleLock类对象    singlelock.Lock();//计数器初始值减1    MessageBox(NULL,"信号量控制访问资源线程数","提示",MB_ICONWARNING);//弹出对话框    thread--;//线程数目减1    str.Format("%d",thread);    pedit->SetWindowText(str);//编辑框显示    return 0;   }
    2022-02-20 19:37:49下载
    积分:1
  • 696516资源总数
  • 106409会员总数
  • 8今日下载