Исходники
Статьи
Языки программирования
.NET Delphi Visual C++ Borland C++ Builder C/С++ и C# Базы Данных MySQL MSSQL Oracle PostgreSQL Interbase VisualFoxPro Веб-Мастеру PHP HTML Perl Java JavaScript Протоколы AJAX Технология Ajax Освоение Ajax Сети Беспроводные сети Локальные сети Сети хранения данных TCP/IP xDSL ATM Операционные системы Windows Linux Wap Книги и учебники
Скрипты
Магазин программиста
|
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 Смотрим результат: Вобщем-то сложностей никаких, достаточно правильно описать функцию обратного вызова.
|
Форум Программиста
Новости Обзоры Магазин Программиста Каталог ссылок Поиск Добавить файл Обратная связь Рейтинги
|