Изменение толщины линии в MFC
CPen newPen;
newPen.CreatePen(PS_DASH,width,GetColor());
CGdiObject* pOldPen = pDC->SelectObject(&newPen);
pDC->Ellipse(GetRect());
pDC->SelectObject(pOldPen);
Насколько я понимаю, второй параметр при создании карандаша это
толщина. Проверял, в width приходит нужная толщина, однако даже при
подстановке туда любой константы (1, 2, 3, ...), эллипс рисуется с толщиной линии
равной 1.
Было замечено, что при подстановке в width больших значений, напр. 40, 100, 1000, толщина всё-таки начинает менятся. В чем же дело?
Спасибо.
CRect newRect(0,0,100,100);
newPen.CreatePen(PS_SOLID, 10, RGB(255,0,0));
pDC->SelectObject(newPen);
pDC->Ellipse(newRect);
pDC->SelectStockObject(BLACK_BRUSH);
100% рабочий код проверял сам!
MSDN 2004 april: For the first version of CreatePen, if this value is 0, the width in device units is always 1 pixel, regardless of the mapping mode.
For the second version of CreatePen, if nPenStyle is PS_GEOMETRIC, the width is given in logical units. If nPenStyle is PS_COSMETIC, the width must be set to 1.