ListView_SetBkImage不适用于XP

ListView_SetBkImage不适用于XP,listview,Listview,我想在Shell扩展中设置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;

我想在Shell扩展中设置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中不起作用。有什么我遗漏的吗?

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


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

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

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