我成功的解决了这个问题,主要思路是先将一个图片框中的图片存成bmp,再设为墙纸
用savepicture picture1.image,"d:\pic.bmp"
只是速度比原来的要慢200ms美中不足的是由于图片框的大小限制,图片显示不完全,我正在用stretchblt使图片大小刚合适,这样这个程序才完美,你有兴趣的话可以email我——[email protected],我正好也在做这个!

解决方案 »

  1.   

    你看这个行吗?
    'in form
    Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As LongConst SPI_SETDESKWALLPAPER = 20Private Sub Command1_Click()If Text1.Text = "" Then
        Exit Sub
    Else
    End IfDim ChangeWP
    ChangeWP = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, Text1.Text, 0)MsgBox "Wallpaper has been changed to " & vbCrLf & "" & vbCrLf & UCase$(Text1.Text) & vbCrLf & "", 64, "Instant Wallpaper Changer"
    Text1.Text = ""
    Text1.SetFocusEnd SubPrivate Sub Form_Load()Show
    Text1.SetFocusEnd Sub