刚开始的时候一直无法达到想要的效果,后来不断的实验发现是由于坐标的切换不正确导致的,下面详细说明
一般而言我们去GetWindowRect(&rt), 获取到的是相对于显示屏的窗口坐标,但是在moveto和liveto 这两个函数是针对device来绘制的,在获取HDC的时候,this->getDC(),得到是当前的对话框的关联DC,所以需要把之前获取的坐标转换到我们的dialog上,也就一时要实用Screentoclient(pt);
GetDlgItem(IDC_STATIC_UP)->GetWindowRect(&r4);
POINT pt1,pt2;
pt1.x = r4.left + 20;
pt1.y = r4.bottom - 20;
pt2.x = r4.left + 20;
pt2.y = r4.top + 20;
ScreenToClient(&pt1);
ScreenToClient(&pt2);
CPen pen(PS_SOLID,3,RGB(0,255,255));
CPen* pOldPen;
CDC *dc = GetDC();
pOldPen=dc->SelectObject (&pen);
dc->MoveTo(pt1);
dc->LineTo(pt2);
dc->SelectObject (&pOldPen);