FindWindow
GetWindow
GetWindowText
SetWindowText
IsWindow
MoveWindow
IsWindowVisible
EnableWindow
IsWindowEnabled
WindowFromPoint
ShowWindow
CloseWindow
SetWindowPos
GetClassLong
SetClassLong
GetWindowLong
SetWindowLong
GetDesktopWindow
GetParent
Функция
FindWindow
function FindWindow(className,WindowName
: PChar) : HWND;
Функция возвращает описатель окна, удовлетворяющий запросу (0 -если такого окна
не найдено).
- ClassName
- Имя класса, по
которому призводится поиск среди ВСЕХ окон системы.
- WindowName
- Заголовок окна
Один из параметров может быть
равен nil, тогда поиск ведется по другому параметру.
Пример:
...
Var Hwnd1 : HWND;
Begin
Hwnd1:=FindWindow('TForm1',nil);//Поиск окна с именем класса TForm
end;
...
Функция
GetWindow
function GetWindow(Wnd : HWND;
Param) : HWND
Функция возвращает описатель окна удовлетворяющий запросу.
- Wnd
- Описатель
какого-либо начального окна
- Param
- Принимает одно
из следующих значений-констант:
-
gw_Owner
- Возвращается описатель окна-предка (0 - если нет
предка).
-
gwHWNDFirst
- Возвращает описатель первого окна (относительно
Wnd).
-
gw_HWNDNext
- Возвращает описатель следующего окна (окна
перебираются без повторений, т.е. если вы не
меняли параметр Wnd функции, повторно описатели
не возвращаются)
-
gw_Child
- Возвращает описатель первого дочернего окна.
Пример:
...
var s:string; Han, Child : Hwnd;
Begin
han:=GetWindow(Form1.handle,gw_HWNDFirst);{получаем описатель первого окна
относительно окна формы Form1}
End;
...
Функция
GetWindowText
function GetWindowText(hWnd:
HWND; lpString: PChar; nMaxCount: Integer): Integer;
Функция возвращает текст окна. Для формы это будет заголовок, для кнопки -
надпись на кнопке.
- hWnd
- Описатель того
окна, текст которого нужно получить.
- lpString
- Переменная, в
которую будет помещен результат
- nMaxCount
Максимальная длина текста, если текст длиннее,
то он обрезается.
Пример: ...
Var Buff : Array[0..127] of char; s : String;
Begin
GetWindowText(Form1.Handle,Buff,SizeOf(Buff));
s:=StrPas(Buff);
label1.caption:=s;
End
...
Функция SetWindowTextfunction
SetWindowText(hWnd: HWND; lpString: PChar): BOOL;
Устанавливает текст окна. -
hWnd
- Описатель того окна, текст которого нужно
установить
-
lpString
- Строка, содержащая устанавливаемый текст.
Пример: ...
Var Buff : Array[0..127] of char;
Begin
StrPCopy("New Text",Buff);
SetWindowText(form2.button1.handle,Buff);{установить надпись на кнопке
Button2 "New Text"}
End;
...
Функция IsWindowfunction
IsWindow(hWnd: HWND): BOOL; Возвращает True, если окно с
заданным описателем существует и False в противном случае.
-
Hwnd
- Описатель нужного окна
Функция MoveWindowMoveWindow(hWnd:
HWND; X, Y, nWidth, nHeight: Integer; bRepaint: BOOL): BOOL;
Перемещает окно в новую позицию. -
hWnd
- Описатель перемещаемого окна.
-
X, Y, nWidth, nHeight
- Соответственно: новые координаты X,Y; новая
ширина, высота.
-
bRepaint
- Булево значение, показывающее будет ли окно
перерисовано заново.
См. Также.
Функция IsWindowVisiblefunction
IsWindowVisible(hWnd: HWND): BOOL;
Возвращает True если данное окно видимо.
-
hWnd
- Описатель окна.
Функция EnableWindowfunction
EnableWindow(hWnd: HWND; bEnable: BOOL): BOOL;
Устанавливает доступность окна(окно недоступно, если оно не
отвечает на события мыши, клавиатуры и т.д.). Аналог в Delphi
свойство Enabled компонентов. EnableWindow возвращает True, если
всё прошло успешно и False в противром случае. -
hWnd
- Описатель окна.
-
bEnable
- Булево значение, определяющее доступность окна.
Пример: ...
EnableWindow(Form1.Button1.Handle,false);
//Эквивалент - Form1.Button1.Enabled:=false
...
Функция IsWindowEnabledfunction
IsWindowEnabled(hWnd: HWND): BOOL;
Возвращает для заданного окна: True, если окно доступно и False
в противном случае. -
hWnd
- Описатель окна.
Функция WindowFromPoint
WindowFromPoint(Point: TPoint): HWND;
Возвращает описатель окна, находящегося в данной точке экрана. -
Point
- Координата точки экрана типа TPoint(определение
типа смотри ниже)
Функция type TPoint = Record
x: Longint;
y: Longint;
end;
Функция ShowWindowfunction
ShowWindow(hWnd: HWND; nCmdShow: Integer): BOOL; Показывает
или прячет окно. -
hWnd
- Описатель нужного окна
-
nCmdShow
- Константа, определяющая, что будет сделано с
окном:
-
SW_HIDE
-
SW_SHOWNORMALSW_NORMAL
-
SW_SHOWMINIMIZED
-
SW_SHOWMAXIMIZED
-
SW_MAXIMIZE
-
SW_SHOWNOACTIVATE
-
SW_SHOW
-
SW_MINIMIZE
-
SW_SHOWMINNOACTIVE
-
SW_SHOWNA
-
SW_RESTORE
-
SW_SHOWDEFAULT
-
SW_MAX
Пример: ...
Begin
ShowWindow(Application.Handle,sw_hide);//Будет скрыт значок приложения
на панели задач
ShowWindow(form1.Handle,sw_hide);//Будет скрыта форма Form1
End;
...
Функция CloseWindowfunction
CloseWindow(hWnd: HWND): BOOL; stdcall;
Закрывает окно. -
hWnd
- Описатель закрываемого окна.
SetWindowPosfunction
SetWindowPos(hWnd: HWND; hWndInsertAfter: HWND; X, Y, cx, cy:
Integer; uFlags: UINT): BOOL; stdcall;
Устанавливает окно в новую позицию -
hWnd
- Оптсатель окна
-
hWndInsertAfter
- Описатель окна, перед которым в списке
Z-Order будет вставлено окно hWnd,
или одна из следующих констант:
-
HWND_BOTTOM
-
Поместить окно на дно списка
Z-Order
-
HWND_TOP
-
Поместить окно на верх списка
Z-Order
- X, Y, cx, cy
Соответственно - новые горизонт.
, верт. позиции окна (X, Y),
а также новая ширина
и высота (cx, cy)
-
uFlags
-
Одна или несколько (разделенных
OR) следующих констант:
-
SWP_NOSIZE
-
Не изменять
размер окна
после
перемещения (cx,
cy
игнорируются)
-
SWP_NOZORDER
-
Не изменять
положение окна в
списке Z-Order
-
SWP_SHOWWINDOW
-
Сделать окно
видимым после
перемещения
-
SWP_HIDEWINDOW
-
Спрятать окно
после
перемещения
-
SWP_NOACTIVATE
-
Не передавать
фокус окну после
перемещения
-
SWP_NOMOVE
-
Не перемещать
окно
(игнорируется
X, Y)
См. Также
Функция GetClassLong
function GetClassLong(hWnd: HWND; nIndex:
Integer): Integer;
Эта функция возвращает 32-разрядное целое,
взятое из определенного поля записи
TWndClassEx указанного окна. -
hWnd
-
Описатель окна
-
nIndex
-
Константа, определяющая что
будет возвращено. Должна быть
одна из следующих:
-
GCL_MENUNAME
-
Возвращает
указатель на
строку,
содержащую имя
меню класса,
определенного в
файле ресурсов
связанного с
некоторой
программой.
-
GCL_HBRBACKGROUND
-
Возвращает
описатель
(HBRUSH) кисти
фона,
ассоциированной
с классом
-
GCL_HCURSOR
-
Возвращает
описатель
(HCURSOR)
курсора,
фссоциированного
с классом
-
GCL_HICON
-
Возвращает
описатель
(HICON)
пиктограммы,
ассоциированной
с классом
-
GCL_HMODULE
-
Возвращает
описатель
процесса
(HMODULE),
зарегистртровавшего
класс.
-
GCL_CBWNDEXTRA
-
Возвращает
размер памяти (в
байтах),
выделенной под
хранение
дополнительных
данных ДАННОГО
ОКНА. Описание
как использвать
эту память,
смотри в
описании функции
GetWindowLong
-
GCL_CBCLSEXTRA
-
Возвращает
размер памяти (в
байтах),
выделенной под
хранение
дополнительных
ДАННОГ КЛАССА
-
GCL_WNDPROC
-
Возвращает адрес
оконной
процедуры,
связанной с
классом.
-
GCL_STYLE
-
Возвращает стиль
класса (наличие
того или иного
стиля
проверяется
побитовой
операцией And
с помощью
констант типа
cs_XXX )
-
GCL_HICONSM
Обратите внимание: в случае, когда
функция возвращает указатель, необходимо
приведение типов (Integer -> Pointer). Делать
это можно так: ...
var p : Pointer;
Begin
p:=PChar(GetClassLong(wnd,GCL_WNDPROC));
//Делайте затем с p что хотите (если сможете...)
End;
...
Функция SetClassLong
function SetClassLong(hWnd: HWND; nIndex:
Integer; dwNewLong: Longint): Integer;
Парная функция функции
GetClassLong. Устанавливает в нужное поле
соответствующее значение.
Функция возвращает старое значение поля, чтобы
его потом можно было исправить или же
возврашается ноль, если что-то пошло не так как
надо. -
hWnd
-
Описатель окна
-
nIndex
-
Одна из констант GCL_XXX
из функции
GetClassLong. В зависимости
от значения этого поля будет
изменнено нужное поле.
Обратите внимание:при установке
полей-указателей необходимо приведение типа
Pointer к типу Integer. ...
var p : Pointer;
l : Integer;
Begin
...
l:=SetClassLong(wnd,GCL_WNDPROC,Integer(p));
//p - может быть и адресом любого объекта pr: @pr
End;
...
Функция GetWindowLong
function GetWindowLong(hWnd: HWND; nIndex:
Integer): Longint; Возвращает информацию о
некотором окне в виде 32-битного целого.
-
hWnd
-
Описатель окна
-
nIndex
-
Константа,определяющая, что
будет возвращено. Должна быть
одна их следующих:
-
GWL_WNDPROC
-
Возвращает адрес
оконной
процедуры,
связанной с
данным окном.
Полученный адрес
(после
соответсвующих
приведений
типов) может
использоваться в
функции
CallWindowProc.
Данное значение
обычно
используют, если
хотят заменить
существующую
оконную
процедуру на
свою
собственную, при
этом, чтобы не
потерять
работоспособности
окна, обычно и
используют
CallWindowProc.
-
GWL_HINSTANCE
-
Возвращает
описатель
приложения,
заданный при
создании окна
функцией
CreateWindowEx.
-
GWL_HWNDPARENT
-
Возвращает
описатель (HWND)
родительского
окна
-
GWL_STYLE
-
Возвращает стиль
окна.
Конкркетные
значения стилей
узнаются при
помощи побитовой
операции And
и констант
WS_XXX
-
GWL_EXSTYLE
-
Возвращает
расширенный
стиль окна.
Конкркетные
значения стилей
узнаются при
помощи побитовой
операции And
и констант
WS_EX_XXX
-
GWL_USERDATA
-
Возвращает
32-битное целое,
ассоциированное
с окном (это
последний
параметр в
вызове
CreateWindow или
CreateWindowEx)
-
GWL_ID
-
Возвращает
идентификатор
окна (он не
имеет ничего
общего с
описателем
окна!),
задаваемый
параметром hMenu
для дочерних
окон при вызове
CreateWindow или
CreateWindowEx
Обратите внимание: в случае, когда
функция возвращает указатель, необходимо
приведение типов (Integer -> Pointer). Делать
это можно так: ...
var p : Pointer;
Begin
p:=PChar(GetWindowLong(wnd,GWL_WNDPROC));
//Делайте затем с p что хотите (если сможете...)
End;
...
Функция SetWindowLong
function SetWindowLong(hWnd: HWND; nIndex:
Integer; dwNewLong: Longint): Longint;
Парная к функции
GetWindowLong. Изменяет аттрибуты
определенного окна.
Функция возвращает старое значение свойства,
если вызов прошел удачно или нуль в противном
случае. -
hWnd
-
Описатель окна
-
nIndex
-
Константа, определяющая, какое
свойство будет изменено. Должна
быть одной из констант
GWL_XXX из описания функции
GetWindowLong
-
dwNewLong
-
Новое значение свойства,
определяемого константой
nIndex
Обратите внимание:при установке
полей-указателей необходимо приведение типа
Pointer к типу Integer. ...
var p : Pointer;
l : Integer;
Begin
...
l:=SetWindowLong(wnd,GCL_WNDPROC,Integer(p));
//p - может быть и адресом любого объекта pr : @pr
End;
...
Функция
GetDesktopWindow
function GetDesktopWindow: HWND
Функция возвращает описатель окна Рабочего Стола
(Desktop). Без параметров.
GetParent
function GetParent(hWnd: HWND): HWND;
Возвращает описатель родительского окна для окна
hWnd. -
hWnd
-
Описатель окна
|