_GUICtrlStatusBar_GetIcon
Возвращает иконку указанной части
#include <GuiStatusBar.au3>
_GUICtrlStatusBar_GetIcon($hWnd [, $iIndex = 0])
Параметры
$hWnd | Дескриптор элемента |
$iIndex |
[необязательный] Индекс части, иконку которой нужно получить, отсчёт от 0. Если статусная строка в простом режиме, то этот параметр должен быть равен 0. |
Возвращаемое значение
Успех: | Возвращает дескриптор иконки |
Ошибка: | Возвращает 0 |
См. также
_GUICtrlStatusBar_SetIconПример
#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
$Debug_SB = False ; Проверяет ClassName передаваемый в функции. Установите True и используйте дескриптор от другого элемента, чтобы увидеть как это работает
Global $iMemo
Example1()
Example2()
Func Example1()
Local $hGUI, $hIcons[2], $hStatus
Local $aParts[4] = [80, 160, 300, 400]
; Создаёт GUI
$hGUI = GUICreate("(Пример 1) Получает иконку", 400, 300)
$hStatus = _GUICtrlStatusBar_Create ($hGUI)
; Создаёт элемент для заметок
$iMemo = GUICtrlCreateEdit("", 2, 2, 396, 274, $WS_VSCROLL)
GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
GUISetState()
; Устанавливает части
_GUICtrlStatusBar_SetParts ($hStatus, $aParts)
_GUICtrlStatusBar_SetText ($hStatus, "Часть 1")
_GUICtrlStatusBar_SetText ($hStatus, "Часть 2", 1)
; Устанавливает иконки
$hIcons[0] = _WinAPI_LoadShell32Icon (23)
$hIcons[1] = _WinAPI_LoadShell32Icon (40)
_GUICtrlStatusBar_SetIcon ($hStatus, 0, $hIcons[0])
_GUICtrlStatusBar_SetIcon ($hStatus, 1, $hIcons[1])
; Показывает дескриптор иконки
Local $hIcon = _GUICtrlStatusBar_GetIcon ($hStatus, 0)
MemoWrite("Дескриптор иконки 1-ой части: 0x" & Hex($hIcon) & @CRLF & _
"IsPtr = " & IsPtr($hIcon) & @CRLF & _
"IsHwnd = " & IsHWnd($hIcon) & @CRLF)
MemoWrite("Дескриптор иконки 2-ой части: 0x" & Hex(_GUICtrlStatusBar_GetIcon ($hStatus, 1)))
; Цикл выполняется, пока окно не будет закрыто
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
; Освобождает иконки
_WinAPI_DestroyIcon ($hIcons[0])
_WinAPI_DestroyIcon ($hIcons[1])
GUIDelete()
EndFunc ;==>Example1
Func Example2()
Local $hGUI, $hStatus
Local $aParts[4] = [80, 160, 300, 400]
; Создаёт GUI
$hGUI = GUICreate("(Пример 2) Получает иконку", 400, 300)
$hStatus = _GUICtrlStatusBar_Create ($hGUI)
; Создаёт элемент для заметок
$iMemo = GUICtrlCreateEdit("", 2, 2, 396, 274, $WS_VSCROLL)
GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
GUISetState()
; Устанавливает части
_GUICtrlStatusBar_SetParts ($hStatus, $aParts)
_GUICtrlStatusBar_SetText ($hStatus, "Часть 1")
_GUICtrlStatusBar_SetText ($hStatus, "Часть 2", 1)
; Устанавливает иконки
_GUICtrlStatusBar_SetIcon ($hStatus, 0, 23, "shell32.dll")
_GUICtrlStatusBar_SetIcon ($hStatus, 1, 40, "shell32.dll")
; Показывает дескриптор иконки
MemoWrite("Дескриптор иконки 1-ой части: 0x" & Hex(_GUICtrlStatusBar_GetIcon ($hStatus, 0)))
MemoWrite("Дескриптор иконки 2-ой части: 0x" & Hex(_GUICtrlStatusBar_GetIcon ($hStatus, 1)))
; Цикл выполняется, пока окно не будет закрыто
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()
EndFunc ;==>Example2
; Записывает строку в элемент для заметок
Func MemoWrite($sMessage = "")
GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc ;==>MemoWrite