gpt4 book ai didi

c++ - 尝试使用 ImageList 创建工具栏,但不起作用

转载 作者:行者123 更新时间:2023-11-30 03:11:05 26 4
gpt4 key购买 nike

我正在尝试让我的工具栏与 ImageList 一起工作。这些图像是单独的 PNG,所以我将它们连续添加到 ImageList 中,但它不起作用。下面是将 Image 添加到 ImageList 的代码:

HIMAGELIST CreateToolBarImages(HINSTANCE hInst)
{
HIMAGELIST v_ImageList = NULL;
// IMAGE_LIST v_Img;
HICON hIcon;
HBITMAP hBit;
COLORMAP cMap;
COLORREF fromColor = RGB( 0,0,0 );

InitCommonControls();

v_ImageList = ImageList_Create(32, 32, ILC_MASK, 1, 1);

cMap.from = fromColor;
cMap.to = ::GetSysColor(COLOR_BTNFACE);
hBit = CreateMappedBitmap(hInst, IDB_CONSOLE, 0, &cMap, 1);

// hBit = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_CONSOLE));
consoleImg = ImageList_Add(v_ImageList, hBit, 0);
if (consoleImg == -1)
return NULL;

DeleteObject(hBit);

// [edit Franci Penov]
return v_ImageList;
}

然后我创建了工具栏,但它在图像功能上失败了。

HWND CreateToolBarButton(HWND hWndParent)
{
const int ImageID = 0;
const int numB = 1;
COLORREF iColor;

HWND hToolBar = CreateWindowEx(0,
TOOLBARCLASSNAME,
NULL,
WS_CHILD |TBSTYLE_LIST |TBSTYLE_FLAT | WS_VISIBLE,
0,0,0,0,
hWndParent,
NULL,
g_hInst,
NULL);

if (hToolBar == NULL)
return NULL;

HIMAGELIST ImgList = CreateToolBarImages(g_hInst);
if (ImgList == NULL)
MessageBox( hWndParent, L"No Tool Images", L"BOB", MB_OK );

// [edit Franci Penov]
return hToolBar;
}

有什么我遗漏或没有做的吗?

最佳答案

什么是“不工作”。 CreateMappedBitmap 用于加载具有颜色表的图像 - 这意味着它们具有 <= 256 种颜色。

PNG 暗示您正在使用带 alpha channel 的 32bpp 图像,这意味着您不能使用 *MappedBitmap 函数。

关于c++ - 尝试使用 ImageList 创建工具栏,但不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2597229/

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