Я рисую линейку, используя пример приложения, указанный в ссылке.
http://www.ucancode.net/Visual_C_Source_Code/MFC-MDI-SDI-Example-create-ruler-scrollview-splitter.htm
При перемещении курсора они рисуют черную линию маркера.Я хочу нарисовать линию красного цвета, как в приложении Microsoft Paint.
В примере они используют приведенный ниже код для рисования линии.
Что нужно сделать, чтобы нарисовать линию красного цвета.
void CRulerView::DrawCursorPos(CPoint NewPos)
{
if (((m_rulerType == RT_HORIZONTAL) && (NewPos.x > m_DocSize.cx*m_fZoomFactor)) ||
((m_rulerType == RT_VERTICAL) && ((NewPos.y) > m_DocSize.cy*m_fZoomFactor)))
return;
CDC* pDC = GetDC();
// set the map mode right
int oldMapMode = pDC->SetMapMode(MM_TEXT);
//HBRUSH hBr=CreateSolidBrush(RGB(255,0,0));
//pDC->SelectObject(hBr);
//CBrush* pTempBrush = NULL;
// pTempBrush = (CBrush*)pDC->SelectObject(&hBr);
CRect clientRect;
GetClientRect(&clientRect);
if (m_rulerType==RT_HORIZONTAL)
{
// erase the previous position
pDC->PatBlt(m_lastPos.x, clientRect.top, 1, clientRect.bottom, DSTINVERT);
// draw the new position
m_lastPos.x = NewPos.x;
pDC->PatBlt(m_lastPos.x, clientRect.top, 1, clientRect.bottom, DSTINVERT);
}
else // (m_rulerType==RT_VERTICAL)
{
// erase the previous position
pDC->PatBlt(clientRect.left, m_lastPos.y, clientRect.right, 1, DSTINVERT);
// draw the new position
m_lastPos.y = NewPos.y;
pDC->PatBlt(clientRect.left, m_lastPos.y, clientRect.right, 1, DSTINVERT);
}
//pDC->SelectObject(&pTempBrush);
pDC->SetMapMode(oldMapMode);
ReleaseDC(pDC);
}