MFC中 m_hBitmap!=如何解决
时间: 2024-02-12 18:05:36 浏览: 168
MFC bitmap
如果在 MFC 中使用 CBitmap 时遇到 m_hBitmap!=0 的问题,可以先使用 DeleteObject() 函数释放原有的位图句柄,再加载或创建新的位图句柄。具体操作如下:
```cpp
if (m_hBitmap != NULL) {
::DeleteObject(m_hBitmap);
m_hBitmap = NULL;
}
m_hBitmap = (HBITMAP)::LoadImage(AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDB_BITMAP1),
IMAGE_BITMAP,
0, 0,
LR_DEFAULTSIZE | LR_LOADTRANSPARENT);
if (m_hBitmap == NULL) {
// 加载位图失败的处理代码
}
```
这段代码首先检查 m_hBitmap 是否已经被创建,如果是则先调用 DeleteObject() 函数释放位图句柄,然后再重新加载位图。需要注意的是,LoadImage() 函数返回的是 HBITMAP 类型的位图句柄,需要使用 (HBITMAP) 强制转换一下才能赋值给 m_hBitmap。如果加载位图失败,可以在后面添加相应的处理代码,比如弹出提示框提示用户。
阅读全文