用VC获得了某程序的SysListView32句柄. 请问如何修改它的背景图片? 用SetBkImage失败, 原背景消失,可是新背景没有出来.

解决方案 »

  1.   

    void CEWDlg::OnOK() 
    {
    HWND hwnd;
    LVBKIMAGE  lv;         // get Syslistview32 handle
    hwnd = GetProcessControl("PubwinClient.exe","Client");
    hwnd = GetControl(hwnd,"SysListView32"); if(hwnd == NULL)
         MessageBox("打开程序失败!");         // Set bk image 
    ZeroMemory(&lv, sizeof(lv));
    lv.ulFlags = LVBKIF_SOURCE_URL | LVBKIF_STYLE_TILE ;
    lv.pszImage = "E:\\3.jpg";
    lv.xOffsetPercent = 0;
    lv.yOffsetPercent = 0;
             ListView_SetBkImage( hwnd, &lv ); ::InvalidateRect(hwnd, NULL, TRUE); // Repaint
    ::UpdateWindow(hwnd); //释放内存
    CloseHandle(hwnd);
    }