关于画图:如何move和resize一个矩形框? 在很多画图软件中,都有选中一个矩形框,然后就可以移动矩形框或调整矩形框的大小,谁有这方面的代码?如能用,立马送上100大洋,不够可以再加,可用分多多。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个很麻烦的,是矢量图形的绘制,你可以参考例子eastdraw,网上很容易找到的。 真巧,我刚好做了一个。类似VC的对话框编辑器。移动的话用SetWindowPos函数。画线的用SetR什么的函数。呵呵,我去找一下,表示画线时对屏幕象素取反。 是橡皮筋矩形吗?是的话用CRectTracker类,在MSDN中有例子 使用CRectTracker,设置属性,调用draw,track即可 int CDisplaySDView::RubberRectangle(CPoint BeginPoint, CPoint oldPoint, CPoint newPoint, int i_Status){/*画橡皮筋矩形先擦除矩形BeginPoint, oldPoint再画矩形BeginPoint, newPoint */ CDC *pDC=this->GetDC(); //保持始终是相对于整个client区域的左上点 CPoint pointAdjust(this->GetScrollPosition().x,this->GetScrollPosition().y); BeginPoint -=pointAdjust; oldPoint -=pointAdjust; newPoint -=pointAdjust; CPen penDashGray(PS_DOT,1,RGB(125,125,125) );//虚线 CPen *penOld=pDC->SelectObject(&penDashGray); int oldRop=pDC->SetROP2(R2_XORPEN); //异或模式 CPoint pts[5]; pts[0]=BeginPoint; pts[1].x=BeginPoint.x; pts[1].y=oldPoint.y; pts[2]=oldPoint; pts[3].x=oldPoint.x; pts[3].y=BeginPoint.y; pts[4]=BeginPoint; pDC->Polyline(pts,5); if (i_Status==0) { pts[0]=BeginPoint; pts[1].x=BeginPoint.x; pts[1].y=newPoint.y; pts[2]=newPoint; pts[3].x=newPoint.x; pts[3].y=BeginPoint.y; pts[4]=BeginPoint; pDC->Polyline(pts,5); } pDC->SetROP2(oldRop); pDC->SelectObject(penOld); this->ReleaseDC(pDC); return 1;} 刚学习VC的数据库,在读取excel的时候遇到些问题 关于csocket中send 发送变量,只能接收到一个字符数据问题 FFTW做IFFT时,结果数据的符号错误.求大侠! vc 6.0对话框资源的使用 今天看了同学用pb做的一个图书管理系统 MessageBox问题 请问各位大哥大姐有没有局域网点对点传送文件的工具?????? 如何得到IE中设置的代理服务器?? 用阿克玛方法对离散点连成光滑曲线应该咋样处理两相邻离散点连线铅垂的情况? 一个asp页面,如何在后台得到正常访问时页面的数据。用什么方法? 如何让列表框自动换行? 怎么样在ActiveX中给客户端的某个目录写文件呢?内祥
移动的话用SetWindowPos函数。
画线的用SetR什么的函数。呵呵,我去找一下,表示画线时对屏幕象素取反。
{
/*
画橡皮筋矩形
先擦除矩形BeginPoint, oldPoint
再画矩形BeginPoint, newPoint
*/
CDC *pDC=this->GetDC();
//保持始终是相对于整个client区域的左上点
CPoint pointAdjust(this->GetScrollPosition().x,this->GetScrollPosition().y);
BeginPoint -=pointAdjust;
oldPoint -=pointAdjust;
newPoint -=pointAdjust;
CPen penDashGray(PS_DOT,1,RGB(125,125,125) );//虚线
CPen *penOld=pDC->SelectObject(&penDashGray);
int oldRop=pDC->SetROP2(R2_XORPEN); //异或模式
CPoint pts[5];
pts[0]=BeginPoint;
pts[1].x=BeginPoint.x;
pts[1].y=oldPoint.y;
pts[2]=oldPoint;
pts[3].x=oldPoint.x;
pts[3].y=BeginPoint.y;
pts[4]=BeginPoint;
pDC->Polyline(pts,5);
if (i_Status==0)
{
pts[0]=BeginPoint;
pts[1].x=BeginPoint.x;
pts[1].y=newPoint.y;
pts[2]=newPoint;
pts[3].x=newPoint.x;
pts[3].y=BeginPoint.y;
pts[4]=BeginPoint;
pDC->Polyline(pts,5);
}
pDC->SetROP2(oldRop);
pDC->SelectObject(penOld);
this->ReleaseDC(pDC);
return 1;
}