我正在尝试在 win32 中使用自定义笔 - PS_DASH/PS_DASHDOT - 使用默认颜色。但是我想根据某些条件在程序主体中更改笔的颜色。根据我到目前为止阅读的示例 - 我还没有遇到更改自定义笔颜色的示例。
谁能给我一个关于如何去做的例子?
另外-任何人都可以澄清-是否可以更改已创建的自定义笔的宽度?除了默认创建自定义笔之外,找不到任何语法。
谢谢
我找到的参考链接: 更改 GDI 笔颜色
http://devmaster.net/forums/topic/13685-win32-setdcpencolor-problem/
HPEN dashPen = CreatePen(PS_DASH, 1, RGB(255, 255, 0));
HPEN dashDotPen = CreatePen(PS_DASHDOT, 1, RGB(255, 255, 0));
// changing color works with DC_PEN but want something similar for custom pen
SelectObject(hdc, GetStockObject(DC_PEN));
SetDCPenColor(hdc, RGB(250, 0, 0));
MoveToEx(hdc, 100, 100, NULL);
LineTo(hdc, 200, 200);
// Changing of Pen color doesn't seem to work for the custom pen
SelectObject(hdc, dashPen);
SetDCPenColor(hdc, COLOR_BLUE);
MoveToEx(hdc, 150, 150, NULL);
LineTo(hdc, 250, 250);
SelectObject(hdc, dashDotPen);
SetDCPenColor(hdc, COLOR_GRAY);
MoveToEx(hdc, 175, 175, NULL);
LineTo(hdc, 275, 275);
DeleteObject(dashPen);
DeleteObject(dashDotPen);