随笔 - 67  文章 - 171  trackbacks - 0
<2012年6月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用链接

留言簿(10)

随笔分类

随笔档案

连接资料

最新随笔

搜索

  •  

最新随笔

最新评论

采用C++编写的纯算法,底层封装了CMyPen类,含有4种笔,分别是毛笔,画笔,荧光笔,水笔.
非常容易调用,只用响应鼠标消息,将点加入进去即可。
纯粹底层算法,兼容windows xp,windows vista ,windows7 ,也很容易向其他语言移植,
例如C#,.net,java,易语言等
如何将毛笔功能添加到你的代码中
我们的底层算法不像你想象的是调用windows api,最核心的是标准的c++,移植非常方便,甚至移植到其他操作系统上


VC++Demo及源代码下载 : http://www.crsky.com/soft/34040.html 

在你窗口类的头文件中声明
................................................. .h ...............................................

CDC m_MemDC;//用于绘制画笔的背景,可以填充背景色或者背景图

CMyPen m_myPen; //主要类成员,笔的算法类
................................................cpp ............................................................
1初始化
在创建窗口下,如果是MFC程序,一般在 OnInitDlg 对话框 或者OnInitialUpdate 文档应用类下

m_MemDC.CreateCompatibleDC(GetDC());
 m_myPen.SetDibTarget(&m_MemDC, m_nWidth, m_nHeight);//设置你笔绘画的有效区的宽度和高度
 m_myPen.SetPenType(CMyPen::PT_MAOBI);//设置笔的类型 这里是毛笔,还有画笔,荧光笔,水笔
 m_myPen.SetWidth(9);//指定笔的宽度
 m_myPen.SetBGColor(RGB(240,240,240));//用与指定背景色,也可以指定背景图
// m_myPen.SetBkImageFromWnd(lpszPath);//指定背景图
 m_myPen.SetColor(RGB(0,0,0));// 用于指定笔的颜色
 m_myPen.Clear();//擦除并刷新

2 响应OnPait或者OnDraw

void CXXXXView::OnDraw(CDC* pDC)
{
 CDrawProDoc* pDoc = GetDocument();
 ASSERT_VALID(pDoc);
 if (!pDoc)
  return;

 pDC->BitBlt(0,0, m_nWidth, m_nHeight, &m_MemDC, 0, 0, SRCCOPY);//需要添加此句
}
3 响应OnMouse
在OnLButtonDown(UINT nFlags, CPoint point)下加入
m_myPen.PushStart(point);//添加一笔的起始点
OnLButtonUp(UINT nFlags, CPoint point)
m_myPen.PushEnd(point);//添加一笔的结束点
OnMouseMove(UINT nFlags, CPoint point)

 if( (nFlags&MK_LBUTTON))//如果鼠标按下且移动
 {
      m_myPen.Push(point);//添加中间点
      InvalidateRect(rect .FALSE);//刷新区域
}

4 如何擦除所绘制的痕迹
 m_myPen.Clear();
 Invalidate(FALSE);

5 新增多点接口,其中dwId代表输入手指的ID,如果是鼠标输入,就是0,默认值,point代表输入点的坐标
void Push(CPoint point, DWORD dwId=0); //输入点, 鼠标移动时调用
 void PushStart(CPoint point, DWORD dwId=0); //输入起始点,鼠标按下时调用
 void PushEnd(CPoint point, DWORD dwId=0); //输入终点,鼠标弹起时调用

按照上述4步,你购买了代码就很实现毛笔功能了哦!于此同时,还有另外3种笔,你将m_myPen.SetPenType(CMyPen::PT_MAOBI)改改就行了哦!

注意:注意本版本相比网上其他家盗卖本公司的老版本代码有如下优势
1丰富的接口,提供DC接口方便开发移植,老版本只有buffer接口,你需要自己填充
2老版本在大的背景下画快了会很细,所以老版本的demo画图区域都很小,用来遮盖响应慢的问题,一般触摸屏本来就慢,那就更加细了
3老版本无法整体调整宽度
4老版本在响应鼠标移动的时候,经常响应不过来,结果就是很细,毫无优化处理
5新增从外部导入图片背景接口及全部清除接口
6鼠标释放的时候绝对没有延时,老版本就有
7老版本都是个人性质,毫无升级和售后保障
8 本毛笔代码属于本公司自主研发,产权属于武汉科领软件科技有限公司,发毛笔代码的时候附带关键流程的word文档,老版本没有
9本代码支持个人银行转账,公司对公转账,淘宝支付宝等多种方式支付,让您更省心
10新版本新增多点毛笔功能,在windows7旗舰版下可以支持多人同时书写,移植到其他系统也很简单

联系方式 叶先生 (价格 单点3000元 多点 5000元)
Tel 18971612286
QQ 31543215
E-Mail 315743215@qq.com
官方网站 www.whkleader.com
淘宝链接 :http://item.taobao.com/item.htm?id=15205465505


 

posted on 2012-06-27 16:37 cpsprogramer 阅读(2918) 评论(0)  编辑 收藏 引用 所属分类: VC++

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理