麻瓜新手第一次开始做项目
对于在窗体上画线其实就是几行代码:
CDC *pDC = GetDC();
//通过GetDC();函数创建了一个CDC 类型对象
//如此你就可以通过指针名pDC访问这个对象的成员函数。例如:pDC->MoveTo(10,10)
CPen Pen(PS_SOLID, 2, RGB(0, 0, 255));//创建画笔
//CPen(int nPenStyle, int nWidth, COLORREF crColor);RGB(红绿蓝)
pDC->SelectObject(&Pen); //选择画笔
pDC->MoveTo(0, 50);
pDC->LineTo(560, 50);
这样的代码网上可以找到好多类似的,可是之前试了很多次都没有成功。后来单步调试发现这个线其实是画出来的,只不过画在了相对与整个屏幕的像素坐标上。
后来前辈指点使用窗体坐标转屏幕坐标:
Crect rect_ctr;
this->GetWindowRect(&rect_ctr);
按道理来讲这个函数是获得窗体相对于屏幕的坐标,可是每次调试其左和上都是0,后来发现原因是我代码放的位置不对,这个代码应该放在onpaint里面,这样其获取的位置就对了。
之后直接把画线部分的代码页放入onpaint里面发现这条线在窗体画出来了。而且坐标就是相对于窗体(用户区)的坐标。还是得多补补课啊MFC架构都不懂,写代码总喜欢写在初始化对话框函数中。