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

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

于 2023-04-03 发布 文件大小:20.71 kB
0 209
下载积分: 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++ 使用断言宏检测程序的运行状态,这是一个VC++6.0 书中的代码,我没有搞懂是什么意思,检测程序运行状态的,里面还包括了数组的使用、排序方法、产生随机种子、输出排序后的数组顺序等,
    2023-03-28 12:15:04下载
    积分:1
  • 多任务多线程断点续传源代码
    VC++下实现多任务多线程并发可断点续传功能的例程源代码VC++下实现多任务多线程并发可断点续传功能的例程源代码
    2022-03-21 18:31:32下载
    积分:1
  • VC 创建内存映像文件对象并使用
    VC++6.0 创建内存映像文件对象并使用,实现了写入内存映射文件和从内存映射文件中读取数据,比如将数据从内存映射文件读出,实现方法如下:   void CFileMapTransTxtDlg::OnRead()   {    //创建内存映像对象    HANDLE hMapping;    LPSTR lpData;    hMapping=CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,PAGE_READWRITE,0,0x100,"MYSHARE");    if(hMapping==NULL)    {    AfxMessageBox("CreateFileMapping() failed.");    return;    }    //将文件的视图映射到一个进程的地址空间上,返回LPVOID类型的内存指针    lpData=(LPSTR)MapViewOfFile(hMapping,FILE_MAP_ALL_ACCESS,0,0,0);    if(lpData==NULL)    {    AfxMessageBox("MapViewOfFile() failed.");    return;    }    //给这段映像内存的数据赋给本地变量    m_strDest.Format("%s",lpData);    //释放映像内存    UnmapViewOfFile(lpData);    //更新数据    UpdateData(FALSE);   }
    2022-05-17 02:25:47下载
    积分:1
  • 简单演示多线程的创建和使用VC++源码
    一个VC++ Win32程序执行单元——多线程 的创建和使用例子,测试时请在CMD控制台中运行Exe,之后看到的运行结果如图所示,代码部分,请参考以下:   HANDLE CreateThread(    LPSECURITY_ATTRIBUTES lpThreadAttributes, // 安全    DWORD dwStackSize, // 堆栈大小    LPTHREAD_START_ROUTINE lpStartAddress, // 起始地址(函数名)    LPVOID lpParameter, // 参数    DWORD dwCreationFlags, // 是否启动    LPDWORD lpThreadId // 新生成的线程ID   );   int main(int argc, char* argv[])   {    HANDLE hThreadProc;    DWORD dwThreadId;    hThreadProc=CreateThread(    NULL,    NULL,    ThreadProc,    NULL,    0, //使线程立即运行    &dwThreadId    );    printf("Now another thread has been created,ID=%d ",dwThreadId);    //等待新线程运行结果    ::WaitForSingleObject(hThreadProc,INFINITE);    ::CloseHandle(hThreadProc);    return 0;   }
    2022-03-26 13:48:22下载
    积分:1
  • VC++ gethostbyname获取主机名和IP地址
    VC++ 获取主机名和IP地址,也就是根据主机名获得IP地址,使用了gethostbyname函数,然后再使用addr.Format格式化获取到IP地址。具体来看以下代码获取到IP地址:   // 获得主机ip地址   struct hostent * phost;   phost = gethostbyname(szhostname);//根据主机名获得IP地址    m_strName=szhostname;   int h_length=4;   for( int j = 0; j  {    CString addr;    if( j > 0 )    str += ".";    addr.Format("%u", (unsigned int)((unsigned char*)phost->h_addr_list[0])[j]);    str += addr;   }   m_strIP=str;
    2022-11-09 11:50:03下载
    积分:1
  • VC++ 读取SQL Server数据库结构
    VC++ 读取SQL Server数据库结构,读取指定数据库指定数据表的数据结构,演示中仅是读取出字段名、字段类型和字段类型取值大小,只是演示一种获取字段数据的方法:   m_grid.SetExtendedStyle(LVS_EX_FLATSB    |LVS_EX_FULLROWSELECT    |LVS_EX_HEADERDRAGDROP    |LVS_EX_ONECLICKACTIVATE    |LVS_EX_GRIDLINES);   m_grid.InsertColumn(0,"字段名",LVCFMT_LEFT,100,0);   m_grid.InsertColumn(1,"类型",LVCFMT_LEFT,100,1);   m_grid.InsertColumn(2,"大小",LVCFMT_LEFT,100,2);
    2022-07-17 13:15:00下载
    积分:1
  • 用VC++实现各种进制间的转换小程序
    酷黑窗体风格的VC++进制转换程序,实现大家各种常用进制间的转换,比如十进制转二进制,八进制、十六进制,还包括了任意两种进制间的转换,用起来十分方便。程序的界面也很有个性,美化成了黑色风格。   注:在用户输入的时候,每个对应的输入框都有对应进制的判断机制,若用户输入错误,会弹出提示,是不能进行转换的。
    2022-10-13 18:50:03下载
    积分:1
  • Windows核心编程第五版随书源码集
    VC++ Windows核心编程第五版随书源码集,这些例子是很好的学习VC++编程的资料,每一个都可以编译运行,对照《VC++ Windows核心编程》这本书,理论加实践,会有更好的学习效果。
    2022-11-21 20:20:03下载
    积分:1
  • VC++ 创建可以显示“最近打开”文件的功能
    VC++ 创建可以显示“最近打开”文件的功能,也就是为菜单项增添历史记录的功能,让打开的文件记录显示在菜单列表中,方便用户下一次打开文件,挺人性化的一个功能。现在的word、WPS等软件,打开后,用户都可以从菜单中选择最近打开的文件,快速找到自己的文档,本VC++源码就是模拟了这一功能。运行效果请参见下边的测试截图。
    2023-05-17 09:10:03下载
    积分:1
  • VC++ 6.0 实现选中项缩进的列表框
    VC++ 6.0 实现选中项缩进的列表框,选中列表项后,该项缩进,文本显示为红色,自定义列表框控件,注意观察选中后的特性,重载控件的DrawItem函数。下面来看实现这一功能的代码段:   dc.Attach(lpDrawItemStruct->hDC);//获取列表框的DC   CRect rect(lpDrawItemStruct->rcItem);//获取列表框的矩形区域   COLORREF bk = dc.GetBkColor();//背景颜色   COLORREF fg = dc.GetTextColor();//系统文本颜色   if(lpDrawItemStruct->itemState & ODS_SELECTED)//该项被选中   {    bk = RGB(180,180,0 );//背景颜色    fg = RGB(255,0,0 );//红色文本   }   dc.SetTextColor(fg);   CBrush brush(bk);   dc.FillRect(&rect,&brush);   if (lpDrawItemStruct->itemState&ODS_SELECTED)   rect.left +=25;//缩进25个象素   int nBkMode = dc.SetBkMode( TRANSPARENT );   CString str;   GetText(lpDrawItemStruct->itemID,str) ;   dc.DrawText(str, &rect, DT_LEFT|DT_VCENTER);//显示文本   dc.SetTextColor(fg);   dc.SetBkMode( nBkMode );   dc.Detach() ;
    2022-06-13 09:32:23下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载