我在CE BltBit中遇到了麻烦,从先前创建的兼容hdc到设备的hdc。
以下代码有效:
hdc = pdis->hDC;
FillRect(hdc, &(pdis->rcItem), (HBRUSH)GetStockObject(BLACK_BRUSH));
ImageList_Draw(himl, imageIndex, hdc, 15 , 30, ILD_NORMAL);
但是,以下仅绘制黑色矩形,而不是将图像放在顶部。
hdc = pdis->hDC;
hdcmem = CreateCompatibleDC(hdc);
FillRect(hdc, &(pdis->rcItem), (HBRUSH)GetStockObject(BLACK_BRUSH));
ImageList_Draw(himl, imageIndex, hdcmem, 0 , 0, ILD_NORMAL);
BitBlt(hdc, 15, 30, 130, 100, hdcmem, 0, 0, SRCCOPY);
任何想法最欢迎。
最好的祝福
Ë
最佳答案
CreateCompatibleDC
不执行您认为的操作。从链接页面:
在应用程序可以使用存储设备上下文进行绘制操作之前,它必须在设备上下文中选择正确宽度和高度的位图。这可以通过使用CreateCompatibleBitmap
指定函数调用中所需的高度,宽度和颜色组织来完成。
设备上下文是一种抽象。它们后面必须有一个存储设备-屏幕或您的位图。
关于c++ - ImageList和BltBit-ting,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1593737/