在内存DC中画线条,要求有颜色,可是发现怎么设置CPen 都是是黑的,查了下,
如下说:
因为CDC是内存设备上下文,在构造时便自动构造了一个黑白的位图,所以
bitmap.CreateCompatibleBitmap(&dcMemory, m_ImageColCount, m_ImageRowCount);
便会建立一个黑白的位图,画出来就自然是黑白的了。
但如果改成
bitmap.CreateCompatibleBitmap(&dc, m_ImageColCount, m_ImageRowCount);
就好了,因为真实dc是用彩色位图的。 理解归理解,不过,总得解决呀,知道的朋友告我一声,多谢了!!~
如下说:
因为CDC是内存设备上下文,在构造时便自动构造了一个黑白的位图,所以
bitmap.CreateCompatibleBitmap(&dcMemory, m_ImageColCount, m_ImageRowCount);
便会建立一个黑白的位图,画出来就自然是黑白的了。
但如果改成
bitmap.CreateCompatibleBitmap(&dc, m_ImageColCount, m_ImageRowCount);
就好了,因为真实dc是用彩色位图的。 理解归理解,不过,总得解决呀,知道的朋友告我一声,多谢了!!~
-------------------------
就是创建一个兼容内存位图,至于默认的颜色你可以不管它是什么颜色
你要修改这个位图背景就创建一个画刷FillRect OK 了线条是什么颜色 CPen 构造时允许你设置颜色的呀
换句话说,不管你在内存DC中给CPEN指定什么颜色,他就只有黑白两种.我主要是用到双缓冲做东西
比如你写字,默认的字体不一定符合你,你可以创建一个字体选进DC,然后就得到自己想要的了嘛
画线的默认画笔是黑色的,你可以创建一个红色的画笔,选进DC 然后再作图..
问题的关键在于内存DC不支持彩色,所以,我在内存DC中所有的选色过程都是失败的.你说的东西我理解,在OnPain里直接用系统的dc确实可以画出彩色的东西
可是用内存DC就不行,我希望能有解决的办法