请问画图程序如何实现毛笔的功能 如题,请大家帮帮忙,给点思路 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个不太容易一般这种效果都是用photoshop做出来了综合运用各种滤镜 采用C++编写的纯算法,底层封装了CMyPen类,含有4种笔,分别是毛笔,画笔,荧光笔,水笔.非常容易调用,只用响应鼠标消息,将点加入进去即可。纯粹底层算法,兼容windows xp,windows vista ,windows7 ,也很容易向其他语言移植,例如C#,.net,java,易语言等VC++Demo及源代码下载 :http://www.cppblog.com/Files/yefuhai/Brush.rar技术原帖及相应资料 : http://www.cppblog.com/yefuhai/archive/2012/06/27/180492.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或者OnDrawvoid 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);按照上述4步,你购买了代码就很实现毛笔功能了哦!于此同时,还有另外3种笔,你将m_myPen.SetPenType(CMyPen::PT_MAOBI)改改就行了哦! 请问楼上的YoungestCPSprogramer ,毛笔的功能可以在VC6是实现吗? 鼠标书写毛笔效果 linux毛笔效果C++算法代码C#javaQT4种语言版本毛笔、水彩笔、荧光笔、硬笔http://www.etfsoft.com/other/downsgoogle/maobi.rar 毛笔算法13762930029 QQ77211022 如何给工程添加类库? 中秋散分 50分求考勤管理软件一份。 请教:远程控制方面问题 *a[]作为参数是什么意思? 如何把一个单窗口切分成三个分窗口,上面两个,下面一个. 基于文档视图结构的菜单的消息响应问题 list Control左键单击时如何选择整行? 能推荐一些VC++的入门书籍吗? vs2008 以后出现那个类似visual studio界面, 怎么把中间那个空白的部分去了啊。。。 关于CIOCPServer类的GetHostName(SOCKET socket)函数移植到vs2010报错的求助! 【回复就送分】MFC实现tinyxml解析显示为图标,或者是按钮控件,求代码,过程
一般这种效果都是用photoshop做出来了
综合运用各种滤镜
非常容易调用,只用响应鼠标消息,将点加入进去即可。
纯粹底层算法,兼容windows xp,windows vista ,windows7 ,也很容易向其他语言移植,例如C#,.net,java,易语言等
VC++Demo及源代码下载 :http://www.cppblog.com/Files/yefuhai/Brush.rar
技术原帖及相应资料 : http://www.cppblog.com/yefuhai/archive/2012/06/27/180492.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);按照上述4步,你购买了代码就很实现毛笔功能了哦!于此同时,还有另外3种笔,你将m_myPen.SetPenType(CMyPen::PT_MAOBI)改改就行了哦!
linux毛笔效果
C++算法代码
C#
java
QT
4种语言版本毛笔、水彩笔、荧光笔、硬笔http://www.etfsoft.com/other/downsgoogle/maobi.rar 毛笔算法
13762930029 QQ77211022