2010-08-18 162 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

相关问题