Функция рисования точки SetPixel устанавливает цвет точки с заданными координатами:
COLORREF WINAPI SetPixel(HDC hdc, // контекст отображения int nXPos, // x-координата точки (логическая, а в сообщениях передаются физические координаты!) int nYPos, // y-координата точки COLORREF clrref); // цвет точкиРисование линий
Для рисования прямых линий в контексте отображения хранятся координаты текущей позиции пера. Для изменения текущей позиции пера предназначена функция MoveToEx.
BOOL WINAPI MoveToEx(HDC hdc, // идентификатор контекста отображенияint x, // x-координатаint y, // y-координатаPOINT FAR* lppt); // указатель на структуру POINT, старые координаты пера.
Чтобы узнать текущую позицию пера, приложение может использовать функцию GetCurrentPositionEx:
BOOL WINAPI GetCurrentPositionEx(HDC hdc, POINT FAR* lppt);Для того чтобы нарисовать прямую линию, приложение должно воспользоваться функцией LineTo:
BOOL WINAPI LineTo(HDC hdc, int xEnd, int yEnd);Эта функция рисует линию из текущей позиции пера, установленной ранее функцией MoveToEx, в точку с координатами (xEnd,yEnd). После того как линия будет нарисована, текущая позиция пера станет равной (xEnd,yEnd).
Особенностью функции LineTo является то, что она немного не дорисовывает линию: эта функция рисует всю линию, не включая точку (xEnd,yEnd).
Можно создать свою собственную функцию рисования линии, например такую:
BOOL DrawLine(HDC hdc, int x1, int y1, int x2, int y1){ POINT pt; MoveToEx(hdc, x1, y1, &pt); return LineTo(hdc, x2, y2);}Рисование ломаной линии
BOOL WINAPI Polyline(HDC hdc, // идентификатор контекста отображения const POINT FAR* lppt,// указатель на массив структур POINT int cPoints); // размер массива