ListView_SetBkImage不适用于XP
我想在Shell扩展中设置ListView控件的背景图像。ListView继承IShellView,我使用以下代码:-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;
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中不起作用 因此,方法是首先从文件中加载,如果失败,则从资源句柄加载