搜索适合当前显示设备的图标或光标的数据.
#Include <WinAPIEx.au3>
_WinAPI_LookupIconIdFromDirectoryEx ( $pData [, $fIcon [, $xDesired [, $yDesired [, $iFlags]]]] )
$pData | 图标或光标的目录数据.此函数不会验证资源数据. 如果此参数没有指向有效s的资源数据, 将导致一般性保护(GP)错误或返回一个未定义值. |
$fIcon | [可选参数] 指定搜索图标或光标,有效值: 1 - 搜索图标. (默认) 0 - 搜索光标. |
$xDesired | [可选参数] 图标或光标的宽度像素值. 如果次参数为 0,函数使用系统度量值设置的宽度. |
$yDesired | [可选参数] 图标或光标的高度像素值. 如果次参数为 0,函数使用系统度量值设置的高度. |
$iFlags | [可选参数] 参数可以是一或多个下列值: $LR_DEFAULTCOLOR --- 使用默认颜色格式 $LR_MONOCHROME --- 创建单色图标或光标 |
成功: | 返回最适合当前显示设备的图标或光标的整数资源标识符. |
失败: | 返回 0,设置 the @error 为非 0 值. |
在MSDN中搜索
#Include <APIConstants.au3>
#Include <WinAPIEx.au3>
Opt('MustDeclareVars', 1)
Global Const $STM_SETIMAGE = 0x0172
Global $hInstance, $hResource, $hData, $pData, $hIcon, $iIcon, $iSize
; 加载 Resources.dll 到内存
$hInstance = _WinAPI_LoadLibraryEx(@ScriptDir & '\Extras\Resources.dll', $LOAD_LIBRARY_AS_DATAFILE)
If Not $hInstance Then
MsgBox(16, 'Error', @ScriptDir & '\Extras\Resources.dll not found.')
Exit
EndIf
; 从 Resources.dll 库中加载 RT_GROUP_ICON 资源
$hResource = _WinAPI_FindResource($hInstance, $RT_GROUP_ICON, 1)
$hData = _WinAPI_LoadResource($hInstance, $hResource)
$pData = _WinAPI_LockResource($hData)
; 搜索最接近指定大小 (48x48) 的图标的整数资源名
$iIcon = _WinAPI_LookupIconIdFromDirectoryEx($pData, 1, 48, 48)
; 从 Resources.dll 库加载 RT_ICON 资源
$hResource = _WinAPI_FindResource($hInstance, $RT_ICON, $iIcon)
$iSize = _WinAPI_SizeOfResource($hInstance, $hResource)
$hData = _WinAPI_LoadResource($hInstance, $hResource)
$pData = _WinAPI_LockResource($hData)
; 从资源中创建图标
$hIcon = _WinAPI_CreateIconFromResourceEx($pData, $iSize)
; 从内存中卸载 Resources.dll
_WinAPI_FreeLibrary($hInstance)
; 创建 GUI
GUICreate('MyGUI', 128, 128)
GUICtrlCreateIcon('', 0, 40, 40, 48, 48)
GUICtrlSendMsg(-1, $STM_SETIMAGE, 1, $hIcon)
GUISetState()
Do
Until GUIGetMsg() = -3