TImageList 具有多个图像的 32 位图标看起来很糟糕?

问题描述 投票:0回答:0

我是 C++ Builder 的新手。我刚刚将我的普通图标添加到设置为 32 位的

TImageList
,它看起来很糟糕(当通过 IDE 或在它使用的控件中查看
TImageList
时,就像
TTreeView
)。这些图标有多种尺寸,其中一种尺寸为 48x48、32x32、24x24、16x16,均为 RGB/A。 32x32
TImageList
看起来比 16x16
TImageList
好一点,它几乎就像它添加了找到的第一个尺寸 48x48 并将其缩小而不是选择与
TImageList
匹配的尺寸,但这将是一个主要限制和没有任何意义。我一定做错了什么?有没有办法确保它们看起来不错?

编辑:

我通过从 16x16 ImageList 中删除所有项目并添加了这个(当然是在向项目添加 .rc 文件之后)进行了测试:

//---------------------------------------------------------------------------
void __fastcall TSharedDataModule::DataModuleCreate(TObject *Sender)
{
    for (UINT i=IDI_USER_ICON_START; i<=IDI_USER_ICON_END; i++) {
        TIcon *icon=new TIcon;
        icon->Handle=reinterpret_cast<HICON>(LoadImageW(HInstance, MAKEINTRESOURCE(i), IMAGE_ICON, ImageList16->Width, ImageList16->Height, 0));
        ImageList16->AddIcon(icon);
        delete icon;
    }
}

图标在

TTreeView
中看起来很棒,因此它看起来确实像是 IDE 中的错误或缺少从 .ico 文件加载正确图像的功能。我确实注意到我的
TDBGrid
图标现在是纯黑色的,所以接下来我必须处理它。

这是答案还是我错过了我需要在 IDE 中做的事情?

delphi c++builder timagelist
© www.soinside.com 2019 - 2024. All rights reserved.