Как установить квадратные линии окон API

Я использую API на Windows (не GDI), и я хотел бы знать, как сделать линию с квадратными краями.

MoveToEx(hdc, x1, y1, NULL);
LineTo(hdc, x2, y2);

Моя текущая строка вывода:

Токовый выход

Я хочу эту строку:

Желаемый вывод

спасибо, есть код

-1

Решение

Вы можете изменить стиль пера, используемый для рисования вашей линии, в частности PS_ENDCAP_SQUARE и выберите эту ручку в контексте устройства, прочитайте документацию для CPen:

 LOGBRUSH logBrush;//you need to use LOGBRUSH structure to specifiy brush attributes of the pen when the pen has PS_GEOMETRIC style
logBrush.lbStyle = BS_SOLID;
logBrush.lbColor = RGB(255,0,0);
CPen pen( PS_GEOMETRIC |  PS_ENDCAP_SQUARE,10,&logBrush);//creates a pen with a square end caps and width of 10 pixels

SelectObject(hdc,pen.GetSafeHandle());//select the above pen into the device context
MoveToEx(hdc,x1,y1,NULL);
LineTo(hdc,x2,y2);
2

Другие решения

Эта работа ! Спасибо !
Смотрите следующий код:

         LOGBRUSH logBrush;
logBrush.lbStyle = BS_SOLID;
logBrush.lbColor = RGB(R,G,B);
HPEN border = ExtCreatePen(PS_GEOMETRIC | PS_ENDCAP_SQUARE | PS_SOLID | PS_JOIN_MITER, size_, &logBrush, 0, nullptr);

SelectObject(hdc, border);
MoveToEx(hdc, x1, y1, nullptr);
LineTo(hdc, x2, y2);

DeleteObject(border);
-1

По вопросам рекламы [email protected]