gpt4 book ai didi

c - 如何在 Windows 上绘制突出显示/选定的位图?

转载 作者:太空宇宙 更新时间:2023-11-04 01:39:39 25 4
gpt4 key购买 nike

我正在使用标准 Win32 API 编写程序。当用户在我的程序中选择图片时,我想绘制位图以使其突出显示/选中。使用标准的 Windows 隐喻,这意味着绘制一个使用系统高亮颜色抖动的位图版本(我不确定“抖动”是技术上正确的术语,但请参阅下面的示例)。我已经尝试了几种方法来使用 BitBlt 和类似的函数来完成此操作,但我似乎无法弄清楚我需要的确切步骤。如果有处理此问题的标准 Win32 函数,我还没能找到它。有谁知道我怎样才能做到这一点?

未选中的图像应如下所示:

Unselected image

选定的图像应如下所示:

Selected image

最佳答案

我无法弄清楚如何直接执行此操作(例如使用 BitBlt 和 friend ),但图像列表对象会为您执行此操作:

HBITMAP hBitmapImage = ...; // cookie monster
HBITMAP hBitmapMask = ...; // all black
HIMAGELIST hImageList = ImageList_Create(width, height, ILC_COLOR32 | ILC_MASK, 1, 0);
ImageList_Add(hImageList, hBitmapImage, hBitmapMask);
ImageList_Draw(hImageList, 0, hDC, x, y, ILD_SELECTED);

结果(左边是原始的,右边是选中的):

Result

关于c - 如何在 Windows 上绘制突出显示/选定的位图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8124521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com