gpt4 book ai didi

c++ - CMFCButton::SetImage - 位图不会显示

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:14:06 28 4
gpt4 key购买 nike

我正在尝试使用 CMFCButton 中的函数 SetImage 为我的按钮加载位图。我没有得到任何错误或其他东西,只是一个普通的按钮。我正在对 icons 做同样的事情并且它有效,但我也需要它来加载 bitmap。我需要从路径而不是资源LoadImage

这是我的代码:

iconResource = path + m_type + _T("U") + extension; //i.e : C:\test\earthU.bmp
HANDLE hIcon = ::LoadImage(nullptr, iconResource, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
//same thing for Hot and Disable bitmap

以及对 SetImage 函数的调用:

SetImage((HBITMAP)hIcon, 0, (HBITMAP)hIconHot, 0 , (HBITMAP)hIconDis);

最佳答案

在为 CMFCButton 加载位图文件时使用 LR_CREATEDIBSECTION|LR_LOADFROMFILE 标志

::LoadImage(nullptr, bitmapfile, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION|LR_LOADFROMFILE);

部分解释:

CMFCButton 的 MFC 源代码 ("afxbutton.cpp") 显示它为 LoadImage 添加了 LR_CREATEDIBSECTION。这没有记录,也不清楚为什么需要它。当源位图不是 32 位时,似乎需要 LR_CREATEDIBSECTION

关于c++ - CMFCButton::SetImage - 位图不会显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57278025/

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