2

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);
4

1 に答える 1