【发布时间】:2013-01-20 11:02:37
【问题描述】:
我在使用 MFC CDC 类以及 LineTo 和 MoveTo 函数进行绘图时遇到问题。 CDC 对象不是从我移动指针的点开始,而是将第一个 Pixel blanc 留在图像的中心。当我在图像左侧的角落周围绘制时,很明显 CDC 对象将最外面的像素留空。 我确实尝试加载自定义画笔,但没有不同的结果。
memDC.FillSolidRect(client, BACKGROUND_COLOR);
CPen penBorder(PS_ENDCAP_SQUARE | PS_SOLID, BORDER_WIDTH, BORDER_COLOR);
//Draw the Horizontal line for the Status Bar
CPen* oldPen = memDC.SelectObject(&penBorder);
memDC.MoveTo(client.left + 0.5f * BORDER_WIDTH, client.top + 0.5f * BORDER_WIDTH);
memDC.LineTo(client.Width() - 0.5f * BORDER_WIDTH, client.top + 0.5f * BORDER_WIDTH);
CPen penRecess(PS_ENDCAP_SQUARE | PS_SOLID, BORDER_WIDTH, RECESS_COLOR);
//Draw the recess
memDC.SelectObject(&penRecess);
memDC.MoveTo(client.left + 1.5f * BORDER_WIDTH, client.top + 1.5f * BORDER_WIDTH);
memDC.LineTo(client.Width() - 0.5f * BORDER_WIDTH, client.top + 1.5f * BORDER_WIDTH);
【问题讨论】:
标签: mfc visual-c++-2012