Viktor1703
AutoIT Гуру
- Сообщения
- 1,535
- Репутация
- 413
Поставить то поставил, но я указываю путь до файла тогда ставится, а мне нужно сначала изменить размер Bitmap под размер окна и только после этого поставить в ListView но функция _GUICtrlListView_SetBkImage() устроена так что во второй параметр вписывается не Handle bitmap а путь до него , как это можно сделать, желательно без сохранения в файл?!
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
#include <WinAPIEx.au3>
#include <GDIPlus.au3>
Global $hDesk = RegRead("HKEY_CURRENT_USER\Control Panel\Desktop", "Wallpaper")
_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile($hDesk)
$hThumb = DllCall($ghGDIPDll, "int", "GdipGetImageThumbnail", "ptr", $hImage, "int", 800, "int", 600, "ptr*", 0, "ptr", 0, "ptr", 0)
$hBitmap = _GDIPlus_BitmapCreateFromHBITMAP($hThumb[4])
_GDIPlus_ImageDispose($hThumb[4])
_WinAPI_DeleteObject($hBitmap)
_GDIPlus_Shutdown()
$hForm = GUICreate("", 800, 600)
$hListView = _GUICtrlListView_Create($hForm, "", 0, -20, 800, 620, 0, 0, True)
_GUICtrlListView_SetBkImage($hListView, $hDesk)
GUISetState()
While 1
Switch GUIGetMsg()
Case -3
Exit
EndSwitch
WEnd