CMFCButton :: SetImage-位图将不会显示

时间:2019-07-30 18:30:06

标签: c++ winapi mfc

我正在尝试使用SetImage中的函数CMFCButton为按钮加载位图。我没有任何错误或什么,只是一个简单的按钮。我正在使用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);

1 个答案:

答案 0 :(得分:1)

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

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

部分说明:

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