ATL:OnDrawThumbnailhDrawDCseemstobemonochromeinIThumbnailProvider
创始人
2024-09-21 15:01:27
0

这个问题的原因在于在 IThumbnailProvider 的 OnDrawThumbnail 函数中,提供的 hDrawDC(绘制缩略图的设备上下文)似乎是单色的。这会导致缩略图无法正确地绘制。

解决方法是使用 BitBlt 函数将 hDrawDC 复制到一个新的设备上下文中。这个新的设备上下文应该具有正确的颜色深度,以便正确地绘制缩略图。以下是示例代码:

HRESULT OnDrawThumbnail(UINT cx, UINT cy, __out HBITMAP* phbmp)
{
    // Get the source bitmap.
    HBITMAP hSourceBitmap = GetSourceBitmap(cx, cy);
    if (!hSourceBitmap)
    {
        return E_FAIL;
    }
    
    // Create a destination bitmap with the desired color depth.
    HDC hDC = GetDC(NULL);
    HDC hDestDC = CreateCompatibleDC(hDC);
    BITMAPINFO bmi = { 0 };
    bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
    bmi.bmiHeader.biWidth = cx;
    bmi.bmiHeader.biHeight = -cy;  // Negative height indicates a top-down bitmap.
    bmi.bmiHeader.biPlanes = 1;
    bmi.bmiHeader.biBitCount = 24;  // 24-bit color depth.
    bmi.bmiHeader.biCompression = BI_RGB;
    HBITMAP hDestBitmap = CreateDIBSection(hDC, &bmi, DIB_RGB_COLORS, NULL, NULL, 0);
    ReleaseDC(NULL, hDC);
    
    // Draw the source bitmap onto the destination bitmap.
    HBITMAP hOldBitmap = (HBITMAP)SelectObject(hDestDC, hDestBitmap);
    HDC hSourceDC = CreateCompatibleDC(hDestDC);
    HBITMAP hOldSourceBitmap = (HBITMAP)SelectObject(hSourceDC, hSourceBitmap);
    BitBlt(hDestDC, 0, 0, cx, cy, hSourceDC, 0,

相关内容

热门资讯

揭秘一下“Wepoker透视效... 无需打开直接搜索;操作使用教程:揭秘一下“Wepoker透视效果如何”开挂辅助插件(透视)辅助教程1...
我来教教大家“wepokerp... 您好,wepokerplus德州局辅助这款游戏可以开挂的,确实是有挂的,需要了解加微【1367043...
总算了解“wepoker能不能... 您好:wepoker能不能开挂透视这款游戏是可以开挂的,软件加【添加微信客服136704302】确实...
玩家必看教程“wpk辅助挂”开... 玩家必看教程“wpk辅助挂”开挂辅助平台(透视)辅助教程是一款可以让一直输的玩家,快速成为一个“必胜...
今日科普“微乐扑克记牌器怎么用... 您好,微乐扑克记牌器怎么用这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩...
分享一款“wepoker辅助器... >>>您好:,软件加微信【添加136704302】确实是有挂的,很多玩家在这款游戏中打牌都会发现很多...
最新技巧“微扑克发牌真的很假”... 无需打开直接搜索加微信客服(136704302)咨询了解微扑克发牌真的很假辅助器目前(微信:1367...
详细说明“wepoker机制”... 详细说明“wepoker机制”开挂辅助工具(透视)科技教程是一款可以让一直输的玩家,快速成为一个“必...
教学盘点“微乐扑克牌有挂吗怎么... 教学盘点“微乐扑克牌有挂吗怎么挂”开挂辅助神器(透视)透牌教程是一款可以让一直输的玩家,快速成为一个...
详细说明“wepoker透视开... 无需打开直接搜索加微信客服(136704302)咨询了解wepoker透视开挂挂视频辅助器目前(微信...