MFC多点触控画板

编程入门 行业动态 更新时间:2024-10-12 08:23:13

MFC<a href=https://www.elefans.com/category/jswz/34/1765794.html style=多点触控画板"/>

MFC多点触控画板

        为了搭配一个项目,决定做个支持多点的多人画板,之前一直使用winfrom但是不支持多点(微软自己的东西都不支持=.=),于是研究了两天MFC,哇,一比较,简直绝望,感觉使用好费劲,各种不知道问题的报错,但是做了两天还是实现基本功能了(第三天就让我实现更多的功能,于是有研究了两天wpf,简直简单,就是HTML和winform的结合体)。

      官方的多点触控是基于单文档的,感谢这个帖子,让我改成基于对话框的:

      微软官方配置教程:.aspx

      感觉把自己会的记录下来,省的以后再接触到全忘记了。

       配置完之后你会发现,是整个dialog都可以画的,建个pictureControl就会把dialog的事件遮挡,于是想了个办法,在主dialog上面建两个子dialog,这样就实现两个独立画板。

      重绘dialog的方法是OnPaint(),初始化方法是InitInstance()在子dialog里面默认都是没有的。右键dialog选择类向导插入,没有就在窗口事件里面,属性栏哪里:


在OnPaint():

CPaintDC dc(this);CRect rc;GetClientRect(&rc);CDC dcMem;dcMem.CreateCompatibleDC(&dc);CBitmap bmpBackground;bmpBackground.LoadBitmap(IDB_BITMAP1);BITMAP bitmap;bmpBackground.GetBitmap(&bitmap);CBitmap* pbmpPri = dcMem.SelectObject(&bmpBackground);dc.StretchBlt(0, 0, rc.Width(), rc.Height(), &dcMem, 0, 0, bitmap.bmWidth, bitmap.bmHeight, SRCCOPY);

对每个控件进行什么操作,都需要先通过ID(可以看做唯一标志符)获取句柄,比如保存图片:

	CWnd* bmpShow(this); //获取句柄,可以写IDCDC *pdc = bmpShow->GetDC();CImage  imag;CRect rect;GetClientRect(&rect);        //获取画布大小  bmpShow->GetClientRect(&rect);imag.Create(rect.Width(), rect.Height(), 32);::BitBlt(imag.GetDC(), 0, 0, rect.Width(),rect.Height(), pdc->m_hDC, 0, 0, SRCCOPY);CString picturePath;picturePath = "D:\\aa\\soen.png";  //文件路径  HRESULT hResult = imag.Save(picturePath); //保存图片  ReleaseDC(pdc);imag.ReleaseDC();

但愿以后不会遇到这东西==。

源码下载地址:







更多推荐

MFC多点触控画板

本文发布于:2024-03-09 01:33:36,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1723245.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:多点   画板   触控   MFC

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!