以下是该方法的基本信息:
BOOL SetMenuItemBitmaps(
UINT nPosition,
UINT nFlags,
HBITMAP hBitmapUnchecked,
HBITMAP hBitmapChecked
);
参数说明:
- nPosition: 要设置位图的菜单项的位置索引。
- nFlags: 指定位图的标志,如 MF_BYPOSITION、MF_BYCOMMAND 等。
- hBitmapUnchecked: 未选中状态下的位图句柄。
- hBitmapChecked: 选中状态下的位图句柄。
返回值:
- 如果成功,则返回非零值;如果失败,则返回零。
示例用法:
CMenu menu;
menu.CreatePopupMenu(); // 创建一个弹出式菜单
HBITMAP hBitmapUnchecked = ::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_UNCHECKED));
HBITMAP hBitmapChecked = ::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_CHECKED));
// 设置第一个菜单项的位图
BOOL result = menu.SetMenuItemBitmaps(0, MF_BYPOSITION, hBitmapUnchecked, hBitmapChecked);
if (result)
{
// 设置位图成功
// ...
}
else
{
// 设置位图失败
// ...
}
// 释放加载的位图资源
::DeleteObject(hBitmapUnchecked);
::DeleteObject(hBitmapChecked);
在上述示例中,首先通过 CreatePopupMenu 创建了一个弹出式菜单对象 menu。然后,使用 LoadBitmap 函数加载了两个位图资源,分别用于未选中状态和选中状态。最后,通过 SetMenuItemBitmaps 方法设置了菜单中第一个菜单项的位图。如果设置成功,返回值为非零,你可以在设置成功后使用 menu 对象进行其他操作。如果设置失败,返回值为零,可以根据需要处理设置失败的情况。
转载请注明出处:http://www.pingtaimeng.com/article/detail/18996/MFC/CMenu