Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ CMFCButton::SetImage-位图赢得';不显示_C++_Winapi_Mfc - Fatal编程技术网

C++ CMFCButton::SetImage-位图赢得';不显示

C++ CMFCButton::SetImage-位图赢得';不显示,c++,winapi,mfc,C++,Winapi,Mfc,我正在尝试从CMFCButton中使用函数SetImage加载按钮的位图。我没有发现任何错误,只是一个简单的按钮。我正在用图标做同样的事情,它可以工作,但我也需要它来加载位图。我需要从路径而不是从资源中加载图像 这是我的密码: iconResource = path + m_type + _T("U") + extension; //i.e : C:\test\earthU.bmp HANDLE hIcon = ::LoadImage(nullptr, iconResource, IMAGE_

我正在尝试从
CMFCButton
中使用函数
SetImage
加载按钮的位图。我没有发现任何错误,只是一个简单的按钮。我正在用
图标做同样的事情,它可以工作,但我也需要它来加载
位图。我需要从路径而不是从资源中加载图像

这是我的密码:

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

::LoadImage(nullptr, bitmapfile, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION|LR_LOADFROMFILE);
部分解释:


CMFCButton
“afxbutton.cpp”
)的MFC源代码显示它为
LoadImage
添加了
LR\u CREATEDIBSECTION
。这没有记录,也不清楚为什么需要这样做。源位图不是32位时,似乎需要
LR\u CREATEDIBSECTION

您可能会或可能不会收到错误,但您不知道,因为您忽略了错误检查
LoadImage
通过返回
NULL
报告错误。使用提供的代码片段,我们也无法看到
iconResource
是否包含正确的值。
operator+
的操作取决于
path
m_type
的类型。您是否检查了
LoadImage
是否成功?如果没有,您是否检查了
GetLastError
返回的内容(这可能会提供一些关于原因的线索)。如果你没有做这两件事,你应该现在就做,并将结果发布在这里(假设这样做无助于解决你自己的问题)。我的
句柄
包含一个很好的句柄(不是
NULL
)我尝试了
GetLastError
,得到了返回值0。@Emile如果从资源加载图像,它能工作吗?对不起,我不知道问题是什么,只是想帮你缩小范围。不过,我怀疑您可能需要调试MFC代码才能弄清问题。将Bitmapfc的
LR_-LOADFROMFILE
更改为
LR_-CREATEDIBSECTION | LR_-LOADFROMFILE
,可能会添加
LR_-CREATEDIBSECTION
,以便在内部访问图像的规范表示。与在UTC中保留所有日期时间的精神类似:无论环境如何,信息都是真实的。DIB中的“DI”毕竟意味着“设备独立”,设备是需要正确解释的外部状态DDB。如果您有时间,请在文档页面上发布一个问题。