2010-08-18 167 views
1

我有兩個系列的N個點,我想用兩種不同的顏色來繪製。我找不到任何明確說明使用MFC CDC和CPen對象以及CDC :: MoveTo/CDC :: LineTo調用的最佳方式。MFC:繪製不同顏色的線

看來每個設備上下文一次只能選擇一個筆對象,所以我最好選擇一支筆,畫一條線,選擇另一支筆,畫另一條線......或者運行一次數據,以某種方式在每個筆之間交換筆(或者不斷地選擇每個筆,或者以某種方式改變筆的顏色)。

回答

0

我認爲你最好的選擇就是按照你說的去做,用第一支筆畫出第一個N點系列,然後選擇第二支筆並畫第二個N點系列。

+0

讓我知道如果我錯過了你需要的東西,我會修改我的答案。 – 2010-08-18 03:25:39

+0

我想這是一個在選擇筆時有多少開銷的問題,或者是否有任何方法可以在創建筆時更改顏色。複製兩個幾乎完全相同的東西循環似乎是一個令人不滿意的方式來編碼... – omatai 2010-08-18 03:29:40

+0

雅我想如果你有他們存儲在一起,然後2通可能是最好的,只有2筆選擇。 – 2010-08-18 05:05:47

0

創建完成後無法更改筆的顏色。但是,您確實錯過了一個選項,即使用該筆顏色繪製給定顏色的所有線段,然後切換筆並繪製其他顏色的所有線段。該選項可能不會提供相同的結果,因爲兩個分段的重疊將取決於哪個首先被繪製。

雖然看起來很不愉快,但我認爲您最好的選擇是爲每種新顏色切換筆並按順序排列點。

+0

我看不出這是一個不同的選擇 - 我選擇在它們之間繪製連接線段的點,如果有相同的點/線段,則不會有一個覆蓋另一個點。 它歸結爲...是最好循環點,並在此之內,循環筆顏色....與循環筆顏色,並在此之內,循環點。我清楚地聽到Brian的後者,並認爲我也聽到了你的聲音。 – omatai 2010-08-18 03:46:45

相關問題