我想在Shell Extension中设置ListView控件的背景图像。 ListView继承了IShellView,我使用以下代码: -
HBITMAP m_hBmp = (HBITMAP)::LoadImage( hinst,
MAKEINTRESOURCE( IDB_BITMAP1 ), IMAGE_BITMAP, 0, 0,
LR_CREATEDIBSECTION | LR_LOADMAP3DCOLORS);
if ( m_hBmp )
{
LVBKIMAGE bki;
bki.ulFlags= LVBKIF_SOURCE_HBITMAP;
bki.hbm = m_hBmp;
bki.cchImageMax = sizeof( bki.hbm );
bki.xOffsetPercent = 50;
bki.yOffsetPercent = 50;
ListView_SetBkImage(m_hwndList,&bki);
}
上面的代码在Vista中工作正常,但由于某种原因它在XP中不起作用。有什么我想念的吗?
答案 0 :(得分:1)
为了使它在两个版本(XP和Vista)中都能正常工作,我们使用了这两种方法。 对于XP,我们从文件加载图像,对于Vista,我们从资源加载它。出于某种原因,从文件加载在Vista中不起作用,从资源句柄加载在XP中不起作用。
因此,方法是首先从文件加载,然后如果失败,则从资源句柄加载。