Здравствуйте.
И снова что-то неведанное просходит
Хочу нарисовать жёлтую линию
void DrawLine(HDC dc, int x1, int y1, int x2, int y2)
{
MoveToEx(dc, x1, y1, nullptr);
LineTo(dc, x2, y2);
}
void DrawRay(HDC dc, Ray ray, double rayLength)
{
Vec2 rayFinish = ray.origin + VectorMultipleScalar(ray.direction, rayLength);
DrawLine(dc, (int)ray.origin.x, (int)ray.origin.y, (int)rayFinish.x, (int)rayFinish.y);
}
HPEN pen = CreatePen(PS_SOLID, 1, RGB(255, 255, 0));
if (pen)
{
SelectObject(dcMem, pen);
DrawRay(dcMem, reflectedRay, rayLength);
DeleteObject(pen);
}
Если стоит PS_SOLID
, то линия не рисуется. Если ставить PS_DASH
или PS_DOT
, то рисуется, но не жёлтым, а белым.
Это почему так?
Даже если делать HPEN pen = CreatePen(PS_DOT, 1, RGB(0, 0, 0))
, то рисует белую линию
Зачем тогда нужен последний параметр и как поменять цвет?
Меняется только так:
SelectObject(dcMem, GetStockObject(WHITE_PEN));
//или
SelectObject(dcMem, GetStockObject(BLACK_PEN))
А как свой цвет поставить?