初学sdk,画板程序开发了一小半,目前可以绘制直线,圆,椭圆,矩形,自由画笔。设计了这样的结构体保存每一次的操作struct Node
{
//线条的宽度
//线条的颜色
//线条的idash
//形状:直线,圆,椭圆,矩形
本次操作的起点
本次操作的终点
Node* pNext;
};
如今还有橡皮擦没有实现。擦皮擦可不等于简单的撤销功能。 有setpixel这个函数,可以把onlbuttondow里的点擦成白色的,就可以了但是如何释放 你记录的结构体呢?尤其是自由画笔记录的很多点,这个很难释放的。我不知道释放谁,释放多少个点?还有:比如 会用绘制了矩形(这个不是自由画笔画的,是画图板里的功能),结果被你用橡皮擦擦了一部分,这样可tmd麻烦了,你记录的那个结构体怎么修改, 好难啊。
{
//线条的宽度
//线条的颜色
//线条的idash
//形状:直线,圆,椭圆,矩形
本次操作的起点
本次操作的终点
Node* pNext;
};
如今还有橡皮擦没有实现。擦皮擦可不等于简单的撤销功能。 有setpixel这个函数,可以把onlbuttondow里的点擦成白色的,就可以了但是如何释放 你记录的结构体呢?尤其是自由画笔记录的很多点,这个很难释放的。我不知道释放谁,释放多少个点?还有:比如 会用绘制了矩形(这个不是自由画笔画的,是画图板里的功能),结果被你用橡皮擦擦了一部分,这样可tmd麻烦了,你记录的那个结构体怎么修改, 好难啊。
解决方案 »
- IDB_PNG//获取这种图片的高与宽?
- CoCreateInstance的第1个和第3个参数到底有什么区别?
- 两个独立进程通信问题
- 想学VC,望大虾们提点!
- 如何用VC调用一DLL,这个DLL没有头文件,但是我知道它里面的函数名和变量??
- (void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))&OnLButtonDown是什么意思
- 想做一个回放软件,可不知怎样去做.......
- 显示器突然黑屏,硬盘指示灯闪烁不停,重新开机后,计算机无法启动
- 关于CreateFile函数删除.vxd文件的问题解决了,但解决的很糊涂,进来看看。
- 求助:vC++2015出错:编号的预期结尾后有多余文本
- 两个view类选择的问题?
- 请教删除指针数组出错问题。
这么说,这个思路至少可以解决一个问题: 记录你的所有操作步骤。可以一一撤销刚才的操作。起码则会2带你就是它起到的作用。当然 当我要增加橡皮擦的时候,就发现无能为力了。不用结构体保存反色以后保存成图片 用ciamge!
如何理解?能否说详细一点
但是擦除就是一个Node,加到链表最后就行了呀
大哥,一楼的结构体你看了吗?一个 node就是一个结构体啊, 这么明显,你没看到啊啊晕倒了每个新的node代表刚 进行完的操作这下子明白了吧
结构体是否得重新修正?当鼠标在某个点的时候,如何去擦出呢?
必须获得以前的操作的线条宽度,颜色。楼上的结构体保存了每一步操作的起点,终点, 只根据onmousemove去推出:以前操作的起点,终点,颜色,宽度,似乎不行。如何修正结构体呢?让其保存橡皮擦操作。
{
int width;//线条的宽度或橡皮擦大小
//线条的颜色
//线条的idash
//形状:直线,圆,椭圆,矩形,橡皮擦,折线等
CArray points; //保存所有记录的点
Node* pNext;
};
如果自由画笔有了,橡皮擦不就是个自由画笔吗?有啥区别?