ImageList和BltBit - ting

时间:2009-10-20 10:33:52

标签: c++ winapi windows-ce

我在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);

欢迎任何想法。

祝你好运 ë

1 个答案:

答案 0 :(得分:3)

CreateCompatibleDC没有按照您的想法行事。从链接页面:

  

在应用程序可以使用内存设备上下文进行绘制操作之前,它必须在设备上下文中选择正确宽度和高度的位图。这可以通过使用CreateCompatibleBitmap来指定函数调用中所需的高度,宽度和颜色组织来完成。

设备上下文是一种抽象。它们后面必须有一个存储 - 一个屏幕,或者在你的情况下是一个位图。