社区
图形处理/算法
帖子详情
求毛笔代码,实现毛笔书写效果?
YoungestCPSprogramer
2012-06-30 08:58:36
我在电子白板中想加入毛笔效果,请问大家如何开发的,我是用vc++开发的,请大家给点思路?最好有例子代码
...全文
670
8
打赏
收藏
求毛笔代码,实现毛笔书写效果?
我在电子白板中想加入毛笔效果,请问大家如何开发的,我是用vc++开发的,请大家给点思路?最好有例子代码
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
绿茶加咖啡
2015-01-23
打赏
举报
回复
老兄,自摸不能这样搞!!!大家都明白,俺无聊,给你一板砖!
YoungestCPSprogramer
2012-08-27
打赏
举报
回复
之前我从网上下了一段代码,发现不行,后来又因为贪便宜,从湖南某人那买了一份毛笔代码,发现根本不能用,不能用的原因如下:
1 背景绘图是通过一个char* pbuffer进行操作,比如你要将一行显示为红色,或者画一个圆,你必须每一个点都进行遍历填充
2 老版本画快了,会很细,大概只有1个像素,显然不行,如果是用触摸屏的画,触摸屏本来响应速度就慢,完全没法使用。
3 老版本没有宽度整体调节和部分……
记住湖南某人靠低价卖代码, 版本很老的 有很多缺陷,请慎重考虑,我吃过亏!,记住了正版询问18971612286
POWERSOUND1
2012-07-30
打赏
举报
回复
[Quote=引用 5 楼 的回复:]
之前我从网上下了一段代码,发现不行,后来又因为贪便宜,从湖南某人那买了一份毛笔代码,发现根本不能用,不能用的原因如下:
1 背景绘图是通过一个char* pbuffer进行操作,比如你要将一行显示为红色,或者画一个圆,你必须每一个点都进行遍历填充
2 老版本画快了,会很细,大概只有1个像素,显然不行,如果是用触摸屏的画,触摸屏本来响应速度就慢,完全没法使用。
3 老版本没有宽度整体调节和部分……
[/Quote]
他在我手上买了一套软件到处分发.还是误导人.
YoungestCPSprogramer
2012-07-01
打赏
举报
回复
要是能封装成dll就完美了
如何将毛笔功能添加到你的代码中
在你窗口类的头文件中声明
................................................. .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)改改就行了哦!
更详细及原始代码出处请点击 http://www.cppblog.com/yefuhai/archive/2012/06/27/180492.html
VC++Demo及源代码下载 :http://www.cppblog.com/Files/yefuhai/Brush.rar
YoungestCPSprogramer
2012-06-30
打赏
举报
回复
谢谢你了!效果还不错
cppsprogramer
2012-06-30
打赏
举报
回复
如何将毛笔功能添加到你的代码中
在你窗口类的头文件中声明
................................................. .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)改改就行了哦!
更详细及原始代码出处请点击 http://www.cppblog.com/yefuhai/archive/2012/06/27/180492.html
VC++Demo及源代码下载 :http://www.cppblog.com/Files/yefuhai/Brush.rar
顶刊复现配电网两阶段鲁棒故障恢复研究(Matlab
代码
实现
)
【顶刊复现】配电网两阶段鲁棒故障恢复研究(Matlab
代码
实现
)
GBT3098.5-2025 紧固件机械性能 自攻螺钉-可搜索
GBT3098.5-2025 紧固件机械性能 自攻螺钉_可搜索.pdf
基于segmentation_models_pytorch开源模型库与自定义模型支持的大尺寸遥感影像语义分割与地物分类项目_使用GDAL进行栅格与矢量数据处理_通过yml配置文件.zip
基于segmentation_models_pytorch开源模型库与自定义模型支持的大尺寸遥感影像语义分割与地物分类项目_使用GDAL进行栅格与矢量数据处理_通过yml配置文件.zip
TypeScript类型系统与全栈项目
ts-type-challenges(TS 类型体操标杆,条件 + 映射 + infer 全覆盖),包含 100 + 实战题:内置工具类型
实现
、分布式条件、自定义 DeepReadonly/DeepPartial、模板字面量类型,配套练习答案,VIP 级类型编程素材。
考虑不确定性的含集群电动汽车并网型微电网随机优化调度研究(Matlab
代码
实现
)
考虑不确定性的含集群电动汽车并网型微电网随机优化调度研究(Matlab
代码
实现
)
图形处理/算法
19,466
社区成员
50,678
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章