掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
CPenのCrearPenの色を条件によって切り替えるには (ID:72631)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ありがとうございます 以下のように 描画するコードのmemDC.の前にいろいろの条件で 太さや色のことなる描画Penを animLnPen〜fnlLnPenから選んで 変えています。 そして fnlLnPenについては 色について これらのコード以前に さらに別の条件により 初めの質問で申したように 変えています。 質問1:幾つものPenをCPenで設定することは良いでしょうか? 質問2:それぞれのPenでの描画コード後は それぞれ DC.SelectObject( pOldPen ); //元のpenに戻す Pen.DeleteObject(); とする必要があるでしょうか これまで 以下のように 処理をしなくても 動作していた。 今回 fnlLnPenについて CreatePen( ... );で 変更するので 助言のように処理をした。 質問3:元のPenに戻す(選択を外す)というのは 破棄Deleteする前に どのような意味があるのでしょうか?Objectになにも設定されていない状態は動作が不安定になるとかのことでしょうか 以下 条件でPen種を変えている if( trce == 1 ) // 初めのTrace 色決め { if( m_swell !=1) //m_swell = 0,2,3 and 4 Edgeline { if(komaCo ==1) // line color in a Koma alternately changing { if( m_swell ==3 || m_swell ==4) memDC.SelectObject(&animLnPen); // 2011/2/22 ColorButton in one Kolam else memDC.SelectObject(&red2Pen); // day show } else { if( m_swell ==0) memDC.SelectObject(&bluGrPen); // day show else if( m_swell ==2) memDC.SelectObject(&yellowPen); // night show else if( m_swell ==3){ memDC.SelectObject(&fnlLnPen); } // ColorButton color in next Kolam else if( m_swell ==4) memDC.SelectObject(&animLnPen); // 2011/2/22 edge-line }// endof if(komaCo } else if( m_swell ==1) memDC.SelectObject(&blackPen); // swelling paper print } else if( trce == 2 ){ memDC.SelectObject(&fnlLnPen); // for back trace dc.SelectObject( pOldPen ); //元のpenに戻す } memDC.MoveTo( x4, y4); memDC.LineTo( x3, y3); あるいは memDC.Arc( kx1, ky1, kx2, ky2, x3, y3, x4, y4); dc.SelectObject( pOldPen ); //元のpenに戻す
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.