Исходники.Ру - Программирование
Исходники
Статьи
Книги и учебники
Скрипты
Новости RSS
Магазин программиста

Ishodniki.Ru » Online книги » Visual Basic по шагам

Шаг 135 - О функциях Enum в VB

Многие функции в Win32 API являются функциями обратного вызова. Например, функция перечисления дочерних окон. В эти функции обычно передается указатель на функцию, которая вызывается. В VB для передачи указателя используется оператор AddressOf.

AddressOf procedurename

Давайте используя ее и попробуем реализовать перечисления дочерних окон. Описываем функции Win32 API:

Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA"_

	(ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Public Declare Function EnumChildWindows Lib "user32"_

	(ByVal hWndParent As Long, ByVal lpEnumFunc As Long, ByVal lParam_

	As Long) As Long

Реализуем функцию обратного вызова.

Public Function EnumWindowProc(ByVal hwnd As Long, ByVal lParam As Long) As Long

	Dim buff As String * 255

	Debug.Print "Enum"

	GetWindowText hwnd, buff, 255

	Form1.List1.AddItem buff

	EnumWindowProc = True

End Function

Вызываем ее при нажатии на кнопку на форме.

Private Sub Command1_Click()

	List1.Clear

	Dim lParam As Long

	EnumChildWindows Me.hwnd, AddressOf EnumWindowProc, lParam

End Sub

Смотрим результат:

gif/135_1.gif (3738 b)

Вобщем-то сложностей никаких, достаточно правильно описать функцию обратного вызова.

 

Предыдущий шаг | Оглавление | Следующий шаг

Рассылка новостей
Рейтинги
© 2007, Программирование Исходники.Ру