ListView_SetBkImage在XP上不起作用

时间:2009-03-16 08:59:03

标签: listview

我想在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中不起作用。有什么我想念的吗?

1 个答案:

答案 0 :(得分:1)

为了使它在两个版本(XP和Vista)中都能正常工作,我们使用了这两种方法。 对于XP,我们从文件加载图像,对于Vista,我们从资源加载它。出于某种原因,从文件加载在Vista中不起作用,从资源句柄加载在XP中不起作用。

因此,方法是首先从文件加载,然后如果失败,则从资源句柄加载。