我在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);任何最受欢迎的想法。
最好的问候E
发布于 2009-10-20 10:41:04
CreateCompatibleDC并不像你想的那样。在链接的页面中:
在应用程序可以使用内存设备上下文进行绘制操作之前,它必须在设备上下文中选择一个具有正确宽度和高度的位图。这可以通过使用
CreateCompatibleBitmap指定函数调用中所需的高度、宽度和颜色组织来完成。
设备上下文是一种抽象。它们后面必须有一个存储--一个屏幕,或者,在您的例子中,是一个位图。
https://stackoverflow.com/questions/1593737
复制相似问题