我正在尝试使用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);
最佳答案
加载LR_CREATEDIBSECTION|LR_LOADFROMFILE
的位图文件时使用CMFCButton
标志
::LoadImage(nullptr, bitmapfile, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION|LR_LOADFROMFILE);
部分说明:
CMFCButton
的MFC源代码("afxbutton.cpp"
)显示它为LR_CREATEDIBSECTION
添加了LoadImage
。这没有记录,也不清楚为什么需要它。当源位图不是32位时,似乎需要LR_CREATEDIBSECTION
。关于c++ - CMFCButton::SetImage-位图将不会显示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57278025/