Graphics MFC:绘制不同颜色的线条

Graphics MFC:绘制不同颜色的线条,graphics,mfc,Graphics,Mfc,我有两个系列的N个点,我想用两种不同的颜色绘制。在使用MFC CDC和CPen对象时,以及作为一堆CDC::MoveTo/CDC::LineTo调用时,我找不到任何明确说明执行此简单任务的最佳方法的内容 似乎每个设备上下文一次只能选择一个笔对象,所以我最好选择一支笔,画一条线,选择另一支笔,画另一条线。。。或者运行一次我的数据,在每一点上以某种方式在笔之间交换(或者不断选择每一支笔,或者以某种方式改变笔的颜色)。我想你最好的办法是按照你说的做,用第一支笔画出第一组N个点,然后选择第二支笔,画出第

我有两个系列的N个点,我想用两种不同的颜色绘制。在使用MFC CDC和CPen对象时,以及作为一堆CDC::MoveTo/CDC::LineTo调用时,我找不到任何明确说明执行此简单任务的最佳方法的内容


似乎每个设备上下文一次只能选择一个笔对象,所以我最好选择一支笔,画一条线,选择另一支笔,画另一条线。。。或者运行一次我的数据,在每一点上以某种方式在笔之间交换(或者不断选择每一支笔,或者以某种方式改变笔的颜色)。

我想你最好的办法是按照你说的做,用第一支笔画出第一组N个点,然后选择第二支笔,画出第二组N个点

一旦创建了笔,就无法更改笔的颜色。但是,您确实错过了一个选项,即使用该颜色的笔绘制给定颜色的所有线段,然后切换笔并绘制其他颜色的所有线段。该选项可能不会产生相同的结果,因为两个线段的重叠将取决于首先绘制的线段


尽管看起来很不愉快,但我认为您最好的选择是为每种新颜色更换笔,并按顺序检查各点。

如果您需要的内容中有遗漏,请告诉我,我会修改我的答案。我想这是一个选择笔的开销问题,或者是否有任何方法可以在创建后更改颜色。复制两个做几乎相同事情的循环似乎是一种不令人满意的编码方式…是的,我认为如果你把它们存储在一起,那么2次循环可能是最好的,只有2次钢笔选择。我看不出这是一个不同的选择-我选择用连接段来绘制点,如果存在相同的点/段,则无法逃避一个覆盖另一个。归根结底是。。。是否最好在点上循环,并在点内循环笔颜色。。。。而不是在钢笔颜色上循环,在这里面,循环点。我清楚地从布赖恩那里听到了后者,我想我也从你那里听到了同样的消息。