2009-03-16 14 views
1

Shell ExtensionでListViewコントロールの背景イメージを設定したいとします。リストビューはIShellViewを継承し、私は次のコードを使用しています: -ListView_SetBkImageがXPで動作しない

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

両方のバージョン(XPとVista)で動作させるために、両方のアプローチを使用しました。 XPでは、ファイルからイメージをロードしています.Vistaではリソースからイメージをロードしています。何らかの理由で、ファイルからのロードはVistaでは機能せず、リソースハンドルからのロードはXPでは機能しません。

したがって、ファイルからファイルをロードし、失敗した場合は、リソースハンドルからロードします。

関連する問題