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

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

于 2023-04-03 发布 文件大小:20.71 kB
0 215
下载积分: 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++点对点,聊天及源码
    带有服务端和客户端的VC++点对点,聊天及数据传输源码,也就是大家熟悉的CS结构,一个是接收消息,一个是发送消息,在服务端和客户端都可以显示消息内容和连接状态。运行的最终效果请参见如图所示。   运行图是Server服务端的效果,客户端没有编译。   void CClientDlg::OnBottonsend()   {    UpdateData();    if (!m_strSend.IsEmpty())    m_client.Send(m_strSend,m_strSend.GetLength());    else    AfxMessageBox("发送内容不能为空!");   }
    2022-11-23 12:00:03下载
    积分:1
  • 2种方案的VC++ 界面换肤模块
    一个挺有用的VC++ 界面换肤模块,里面包括了了两种换肤方案,“方案一”文件夹中实现的是加载皮肤文件实现界面换肤,“方案二”文件夹中实现的是加载组件库实现界面换肤。   加载皮肤文件实现界面换肤:选择“界面修改”/“加载界面文件”命令,在打开的窗口中选择皮肤文件(.ski),即可更换界面皮肤.   另外还有加载组件库实现界面换肤,使用的是WndDll.dll,请下载源码具体测试吧。   加载窗体皮肤文件要注意:窗体各部分位图资源:   0,1,2: 分别为标题栏的左中右3部分   3,4,5: 分别为左,下,右边框   6,7,8,9,10,11: 为标题栏普通按钮和热点按钮   12,13: 表示左下角和右下角位图   14: 表示背景位图
    2022-03-23 09:54:11下载
    积分:1
  • VC++ 删除已存在的存储过程
    VC++ 演示在程序中删除已存在的存储过程,VC6存储过程相关操作实例,删除方法很简单,创建对象,如下代码示:   UpdateData(true);   BOOL result;   ADOConn m_AdoConn;   m_AdoConn.OnInitADOConn();   _bstr_t sql;   sql = "drop procedure "+m_edit+" ";   result = m_AdoConn.ExecuteSQL(sql);   m_AdoConn.ExitConnect();   if(result)    MessageBox("存储过程已删除!");   else    MessageBox("存储过程不存在!");
    2022-12-24 15:50:03下载
    积分:1
  • VC++自定义鼠标击键(点击)的声音
    VC++自定义鼠标击键声音,包括单击鼠标左键和右键的声音信息,一般情况下,Windows系统中有内置的声音,本程序是修改掉默认的单击声,改为自定义的,想熟悉修改过程的,可下载本源码参考。   运行本程序后,在窗口空白处单击鼠标左键或右键会出现与系统不一样的叮咚声音。
    2022-03-25 07:58:00下载
    积分:1
  • 收集3个与进程相关的VC++源代码
    收集3个与进程相关的VC++源代码,主要是进程的创建、进程控制、控制其他进程这三个源码,每一个在VC6.0环境下都可以顺利编译,这些例子都不复杂,因此是初学者学习VC++很不错的范例。
    2022-04-26 15:50:40下载
    积分:1
  • VC++ 实现对软件的简单加密(注册)功能
    VC++ 实现对软件的简单加密,本程序是通过C盘序列号来加密文件,实现软件的注册功能,软件号和C盘序列号同时正确才可验证,而C盘的序列号是唯一的,获得c盘序列号的代码如下:   DWORD VolumeSerialNumber;   GetVolumeInformation("c:",NULL,12,&VolumeSerialNumber,NULL,NULL,NULL,10);   VolumeSerialNumber^=0x12345678;//本机c盘序列号简单运算   m_usernum=VolumeSerialNumber;   UpdateData(false);   然后通过序列的判断,来验证加密是否正确,比如下边的代码来做加密验证:   UpdateData(true);   DWORD num;   num=m_usernum;   num^=0x1999aa98+12;//加密算法   if(!(num==m_serialnum))   {    AfxMessageBox("输入的序列号不正确!");    return;   }
    2022-11-07 22:05:03下载
    积分:1
  • VC++ 创建可以显示“最近打开”文件的功能
    VC++ 创建可以显示“最近打开”文件的功能,也就是为菜单项增添历史记录的功能,让打开的文件记录显示在菜单列表中,方便用户下一次打开文件,挺人性化的一个功能。现在的word、WPS等软件,打开后,用户都可以从菜单中选择最近打开的文件,快速找到自己的文档,本VC++源码就是模拟了这一功能。运行效果请参见下边的测试截图。
    2023-05-17 09:10:03下载
    积分:1
  • VC 向加密狗中写入数据
    VC 向加密狗中写入数据,与加密狗相关的例子。   DogAddr = 10; //设置起始地址   DogBytes = m_Data.GetLength(); //设置数据的长度   DogData = m_Data.GetBuffer(0); //设置写入的数据   if (WriteDog()==0)   MessageBox("数据写入成功");
    2022-07-14 23:43:14下载
    积分:1
  • VC++ 首字母大写自动转换源码
    VC++拼音首字母大写自动转换程序,获取汉字的拼音首字母,并把首字母转换成大写,这是个VC.NET程序,我电脑上暂时没有编译环境,没有抓到截图,部分代码如下:   class CUpperFirstLetterApp : public CWinAppEx   {   public:    CUpperFirstLetterApp();   // 重写    public:    virtual BOOL InitInstance();   // 实现    DECLARE_MESSAGE_MAP()   };
    2022-04-18 02:09:56下载
    积分:1
  • VC++ 6.0 定制分割条(分隔条)的样式及大小
    VC++ 6.0 定制分割条,也就是窗体的分隔条,将窗口分隔成若干个部分,用来显示不同的内容,该窗格视图为CStaticSplitWnd4View,该窗格大小不能通过拖动改变,不过我们可以通过菜单命令动态改变大小,窗格视图为CView2,该窗格大小不能通过拖动改变,窗格视图CView3和CView4都可以通过分隔条的拖动来改变视图大校   本示例中的分隔条经过了初级的美化,而且也向用户展示了,如何通过分割条来固定分栏窗格视图的大小,如何让分隔条不支持拖动等功能。
    2023-08-22 18:20:04下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载