Функция _WinAPI_LoadImage

 ↑  ←  Описание функции


_WinAPI_LoadImage

Загружает иконку, курсор или bitmap

#include <WinAPI.au3>
_WinAPI_LoadImage($hInstance, $sImage, $iType, $iXDesired, $iYDesired, $iLoad)

Параметры

$hInstance Экземпляр модуля, который содержит загружаемое изображение. Чтобы загрузить OEM изображение, установите этот параметр равным 0.
$sImage Загружаемое изображение. Если параметр $hInstance равен 0, а параметр $iLoad не включает в себя $LR_LOADFROMFILE, то $sImage является строкой содержащей имя ресурса в модуле $hInstance. Если параметр $hInstance равен 0, а $LR_LOADFROMFILE не указан, the low-order word of this parameter must be the identifier of the OEM image to load.
$iType Тип загружаемого изображения. Этот параметр может быть одним из следующих значений:
    $IMAGE_BITMAP - Загружает bitmap
    $IMAGE_CURSOR - Загружает курсор
    $IMAGE_ICON - Загружает иконку
$iXDesired Ширина иконки или курсора в пикселях. Если этот параметр равен 0 и параметр $iLoad равен LR_DEFAULTSIZE, то функция использует системные значения метрики SM_CXICON или SM_CXCURSOR для установки ширины. Если этот параметр равен 0 и LR_DEFAULTSIZE не используется, то функция использует фактическую ширину ресурса.
$iYDesired Высота иконки или курсора в пикселях. Если этот параметр равен 0 и параметр $iLoad равен LR_DEFAULTSIZE, то функция использует системные значения метрики SM_CYICON или SM_CYCURSOR для установки высоты. Если этот параметр равен 0 и LR_DEFAULTSIZE не используется, то функция использует фактическую высоту ресурса.
$iLoad Это может быть комбинацией следующих значений:
    $LR_DEFAULTCOLOR - Флаг по умолчанию
    $LR_CREATEDIBSECTION - When the $iType parameter specifies $IMAGE_BITMAP, causes the function to return a DIB section bitmap rather than a compatible bitmap. This flag is useful for loading a bitmap without mapping it to the colors of the display device.
    $LR_DEFAULTSIZE - Использует ширину или высоту определяемые системными значениями метрики для иконки или курсора если значения $iXDesired или $iYDesired равны 0. Если этот флаг не указан, а $iXDesired и $iYDesired равны нулю, то функция использует фактический размер ресурса. If the resource contains multiple images the function uses the size of the first image.
    $LR_LOADFROMFILE - Загружает изображение из файла, указанного в параметре $sImage. Если этот флаг не указан, то $sImage является именем ресурса.
    $LR_LOADMAP3DCOLORS - Searches the color table for the image and replaces the following shades of gray with the corresponding 3D color:
    Dk Gray: RGB(128,128,128) COLOR_3DSHADOW
    Gray : RGB(192,192,192) COLOR_3DFACE
    Lt Gray: RGB(223,223,223) COLOR_3DLIGHT
    $LR_LOADTRANSPARENT - Gets the color value of the first pixel in the image and replaces the corresponding entry in the color table with the default window color. All pixels in the image that use that entry become the default window color. This value applies only to images that have corresponding color tables. If $iLoad includes both the $LR_LOADTRANSPARENT and $LR_LOADMAP3DCOLORS values, $LRLOADTRANSPARENT takes precedence.
    However, the color table entry is replaced with COLOR_3DFACE rather than COLOR_WINDOW.
    $LR_MONOCHROME - Loads the image in black and white
    $LR_SHARED - Shares the image handle if the image is loaded multiple times. If LR_SHARED is not set, a second call to LoadImage for the same resource will load the image again and return a different handle. Do not use $LR_SHARED for images that have non-standard sizes, that may change after loading, or that are loaded from a file.

Возвращаемое значение

Успех:Возвращает дескриптор загруженного изображения
Ошибка:Возвращает 0

Примечания

Для выше указанных констант необходим Constants.au3

См. также

Искать LoadImage в библиотеке MSDN

Пример

#include <GUIConstantsEx.au3>
#include <Constants.au3>
#include <GuiListView.au3>
#include <GuiImageList.au3>

_Main()

Func _Main()
    Local $iListView, $hListView, $hImage, $hModule, $hBitmap
    Local $exStyles = BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES)

    GUICreate("Пример", 400, 300)
    $iListView = GUICtrlCreateListView("", 2, 2, 394, 268, BitOR($LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER, $LVS_REPORT))
    _GUICtrlListView_SetExtendedListViewStyle($iListView, $exStyles)
    $hListView = GUICtrlGetHandle($iListView)
    GUISetState()
 
    $hModule = _WinAPI_GetModuleHandle(@SystemDir & "\shell32.dll") ; извлекаем дескриптор уже загруженного модуля
    $hBitmap = _WinAPI_LoadImage($hModule, 230, $IMAGE_BITMAP, 0, 0, 0) ; загружаем ресурс Bitmap из загруженного модуля shell32.dll

    ; Загружает изображения
    $hImage = _GUIImageList_Create(20, 20)
    _GUIImageList_Add($hImage, _WinAPI_CreateSolidBitmap($hListView, 0xFF0000, 20, 20))
    _GUIImageList_Add($hImage, _WinAPI_CreateSolidBitmap($hListView, 0x00FF00, 20, 20))
    _GUIImageList_Add($hImage, $hBitmap)
    _GUICtrlListView_SetImageList($iListView, $hImage, 1)

    ; Добавляет колонки
    _GUICtrlListView_AddColumn($iListView, "Пункты", 120)

    ; Добавляет пункты
    _GUICtrlListView_AddItem($iListView, "Пункт 1", 0)
    _GUICtrlListView_AddItem($iListView, "Пункт 2", 1)
    _GUICtrlListView_AddItem($iListView, "Пункт 3", 2)

    ; Цикл выполняется, пока окно не будет закрыто
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
EndFunc   ;==>_Main