我在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);
欢迎任何想法。
祝你好运 ë
答案 0 :(得分:3)
CreateCompatibleDC
没有按照您的想法行事。从链接页面:
在应用程序可以使用内存设备上下文进行绘制操作之前,它必须在设备上下文中选择正确宽度和高度的位图。这可以通过使用
CreateCompatibleBitmap
来指定函数调用中所需的高度,宽度和颜色组织来完成。
设备上下文是一种抽象。它们后面必须有一个存储 - 一个屏幕,或者在你的情况下是一个位图。