2
我想在默認顏色的win32 - PS_DASH/PS_DASHDOT中使用自定義筆。但是,我想根據某些條件在程序主體中更改筆的顏色。根據我迄今閱讀的示例 - 我還沒有遇到自定義筆顏色更改的示例。Win32 - GDI - 更改自定義筆顏色
任何人都可以給我一個如何去做這個例子嗎?
此外 - 任何人都可以澄清 - 如果有可能改變已經創建的自定義筆的寬度?除了缺省創建自定義筆之外,找不到任何此語法。
感謝
參考鏈接我發現: Change GDI pen colour
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);
只需製作一支新筆,輕鬆自在。 – 2013-05-11 13:51:57
目前還不清楚什麼智力模型讓你認爲'SetDCPenColor'改變了DC筆以外的任何其他顏色。 DC筆是唯一一個可以在創建後更改顏色的筆。 (因爲它不是一支筆,而是一支虛擬筆。) – 2013-05-11 13:56:59
感謝您的答覆。我對這個win32編程相對來說比較陌生,並且有一種印象是自定義筆的顏色一旦創建就可以改變。它看起來像在GDI中 - 自定義筆的顏色和寬度都不能在創建後更改。會找到一種替代方法來處理這種情況。 – ejuser 2013-05-11 17:14:09