您的位置:程序门 -> vc/mfc -> 图形处理/算法



如何实现一个矩形随着鼠标的移动而移动。本人写了一个,但是出现严重的错误。望大侠解答。


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


如何实现一个矩形随着鼠标的移动而移动。本人写了一个,但是出现严重的错误。望大侠解答。[已结贴,结贴人:zp75296383]
发表于:2007-09-17 15:50:22 楼主
void   cmy1_1view::onmousemove(uint   nflags,   cpoint   point)  
{
cclientdc   dc(this);
cbrush   *brush=cbrush::fromhandle((hbrush)getstockobject(null_brush));
cbrush   *poldbrush=dc.selectobject(brush);
cpen   pen(0,0,rgb(0,0,0));
cpen*   poldpen=dc.selectobject(&pen);

if(m_draw==1)
{ dc.setrop2(r2_not);
// dc.textout(oldpoint.x+10,oldpoint.y+10, "zhangpeng ");
dc.rectangle(oldpoint.x,oldpoint.y,oldpoint.x+100,oldpoint.y+100);
m_draw=0;
}


if(m_draw==0)
{
dc.setrop2(r2_not);
dc.rectangle(point.x,point.y,point.x+100,oldpoint.y+100);
// dc.textout(point.x+10,point.y+10, "zhangpeng ");
m_draw=1;
oldpoint=point;
}


dc.selectobject(poldpen);

dc.selectobject(poldbrush);
}
上面是我的做法,但是实现的结果,和预期的有很大出路。
发表于:2007-09-18 08:54:171楼 得分:2
dc.rectangle(point.x,point.y,point.x+100,oldpoint.y+100);
换一下试试
dc.rectangle(point.x,point.y,point.x+100,point.y+100);
发表于:2007-09-18 09:48:062楼 得分:0
要涉及重绘

你的错误是什么,具体说一下
发表于:2007-09-18 11:09:543楼 得分:0
程序运行没有错误。但是出现的图像并没有向预期的那样。一个矩形在客户区移动,
而是出现了残影,也就是说:擦除不干净。特别是矩形的下面一条线,再绘的时候显示不出来
发表于:2007-09-18 14:17:094楼 得分:0
啊,才2分呀.


快速检索

最新资讯
热门点击