对于了解CreateDIBitmap疑难解答的人
当我创建它时,传递所有参数有希望正确,我用传递数据数组(位数组)创建它。 此数组取自相同的位图(想法是创建一个新副本;用于测试目的)。 但是在创建之后(它返回正确的句柄),位图是正确的,但是调色板是B& W. 没有颜色。 为什么?谁知道?
答案 0 :(得分:3)
您的第一条评论是问题的关键。您正在使用通过CreateCompatibleDC()获得的内存设备上下文,并且在内存DC中选择的默认位图是单色的(每像素1位)。
CreateDIBitmap()使用该设备上下文来确定它创建的DIB的位深度,因此最终得到单色DIB。
您可以使用CreateDIBSection()提供自己的位深度,但最简单的解决方案可能是将hdcScreen
传递给CreateDIBitmap()
而不是compatibleDC
。