我在OnMouseMove()添加:
CClientDC dc(this);
CPen pen(PS_SOLID,5,RGB(255,0,0));
CPen *pOldPen=dc.SelectObject(&pen);
if(m_bDraw==TRUE)
{
dc.SetROP2(R2_XORPEN);
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
dc.SetROP2(R2_XORPEN);
dc.MoveTo(m_ptOrigin);
dc.LineTo(m_ptDraw);
m_ptDraw=point;
}
dc.SelectObject(pOldPen);
这样产生了两个问题:
1.由于先异或了说一很难配出我要的颜色,特别时当背景色不是纯色,例如背景为一幅图片时,我所要绘制的线颜色就不能保持我在画笔中设置的颜色。
2.两线相交处出现背景颜色。
另外用刷新客户区的方法时,画线会有闪烁现象……
CClientDC dc(this);
CPen pen(PS_SOLID,5,RGB(255,0,0));
CPen *pOldPen=dc.SelectObject(&pen);
if(m_bDraw==TRUE)
{
dc.SetROP2(R2_XORPEN);
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
dc.SetROP2(R2_XORPEN);
dc.MoveTo(m_ptOrigin);
dc.LineTo(m_ptDraw);
m_ptDraw=point;
}
dc.SelectObject(pOldPen);
这样产生了两个问题:
1.由于先异或了说一很难配出我要的颜色,特别时当背景色不是纯色,例如背景为一幅图片时,我所要绘制的线颜色就不能保持我在画笔中设置的颜色。
2.两线相交处出现背景颜色。
另外用刷新客户区的方法时,画线会有闪烁现象……
解决方案 »
- 设计的自动登录邮箱软件,有的网站能登,但提示密码错误,有的根本无法登录
- UDP内网主机向外网发送数据,外网目标主机无法收到数据???
- 删除注册表带子项的项
- 请问如何关闭IE但不关闭其他程序
- 一个小的工控程序,寻求外包!!!
- 请教:为什么有的dll要注册?我从来没用过。一般都是写好了直接使用。另外怎么注册?
- 编译错误!!我看不懂是什么原因!请帮我看一下!
- 如何使用EM_CHARFROMPOS消息
- 请问序列化(serial)是怎么回事?具体用来干什么?该怎么操作?
- mfc求自定义按钮实现改变字体颜色
- WM_RBUTTONUP和WM_LBUTTONUP的消息问题
- 问一个关于ISAPI Filter的问题
不过你可以在拖动后记录起点终点,在ONDRAW中重绘一下
至于闪烁就好办了,DOUBLE BUFFER
不知道windows附件->画图,那个程序时怎么实现画线这个功能的
大概只有用双缓充才能实现!
哪位朋友有这方面代码,看看……