Функция EnumPropsEx

Declare Function EnumPropsEx Lib "user32" Alias "EnumPropsExA" (ByVal hWnd As Long, ByVal lpEnumFunc As Long, _
    ByVal lParam As Long) As Long

EnumPropsEx перечисляет все свойства окна. Информация о свойствах передается по очереди заданной функции обратного вызова до тех пор, пока не будут перечислены все свойства или пока функция обратного вызова не вернет False.

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

Если функция не нашла свойств окна для перечисления, то возвращает -1. В других случаях возвращает последнее значение, возвращенное функцией обратного вызова.

Параметры

hWnd
Описатель окна для перечисления его свойств
lpEnumFunc
Указатель на функцию обратного вызова PropEnumProcEx, который получает информацию о каждом перечисленном свойстве окна
lParam
Дополнительное значение, определяемое приложением, для передачи функции обратного вызова

Пример

' Перечислим все свойства окна Form1

' *** Расположите код в модуле ***
' Данная функция просто выводит имена свойств окна
Public Function PropEnumProcEx(ByVal hwnd As Long, _
    ByVal lpszString As Long, _
	ByVal hData As Long, _
	ByVal dwData As Long) As Long
  Dim propname As String  ' получает имя свойства
  Dim retval As Long ' возвращаемое значение

  ' Копируем строку из lpString в настоящую строку
  propname = Space(lstrlen(lpszString))
  retval = lstrcpy(propname, lpszString)
  ' Выводим имя свойства
  Debug.Print "- "; propname

  ' Сообщаем функции EnumPropsEx продолжать перечисление
  PropEnumProcEx = 1
End Function

' *** Основной код для перечисления в любом месте
Dim retval As Long  ' результат перечисления

Debug.Print "Начинаем перечисление свойств Form1"
retval = EnumPropsEx(Form1.hWnd, AddressOf PropEnumProcEx, 0)
If retval = -1 Then
  Debug.Print "Больше нет свойств"
End If

Категория

Свойства окон