« Поставить закладку » « Сделать стартовой »

« Форумы » « Блоги » « Статьи » « Новости » « Файлы » « Realcoding IRC » « Site map » « Поиск »


Главная Главная
Анонсы Анонсы
Форумы Форумы
Каталог Каталог
Поиск Поиск
Опросы Опросы
Книжный магазин Книжный магазин
Реклама на сайте
Публикации Публикации
Партнеры Партнеры
Карта Карта сайта
Рассылки Рассылки
RSS экспорт
Настройки Настройки
О нас пишут О нас пишут
Контакты Контакты
Гостевая книга Гостевая книга



ПнВтСрЧтПтСбВс
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
    Популярное
Мобильный беспроводной маршрутизатор L1 WAP-0004 (3 в 1)

Функция AccessResource

Настройка телефонов Siemens S45 и МЕ45 в сети МТС

К вопросу о защите программ

Визуальный HTML редактор своими руками

Режимы отображения координат

Резюме

Как приготовить чай (Инструкция для программиста)

Будущее веб-стандартов

Описание функций C (Си) / C++ - frexp




    Архив файлов



    Сообщества

    Документация

    Кто на сайте
Вы не зарегистрированы.
Имя:

Пароль:

Запомнить

Регистрация позволит Вам пользоваться дополнительными сервисами.
Сейчас на сайте:
Гостей: 211
Пользователей: 0

Статьи:: Delphi :: Программирование на WinAPI :: Функции Win API для работы с окнами



отправить ссылку другу версия для печати  Обсудить на форуме

Функции Win API для работы с окнами



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 
...

Функция SetWindowText

function 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;

...

Функция IsWindow

function IsWindow(hWnd: HWND): BOOL; Возвращает True, если окно с заданным описателем существует и False в противном случае.

Hwnd
Описатель нужного окна

Функция MoveWindow

MoveWindow(hWnd: HWND; X, Y, nWidth, nHeight: Integer; bRepaint: BOOL): BOOL; Перемещает окно в новую позицию.

hWnd
Описатель перемещаемого окна.
X, Y, nWidth, nHeight
Соответственно: новые координаты X,Y; новая ширина, высота.
bRepaint
Булево значение, показывающее будет ли окно перерисовано заново.

См. Также.


Функция IsWindowVisible

function IsWindowVisible(hWnd: HWND): BOOL;
Возвращает True если данное окно видимо.
 

hWnd
Описатель окна.

Функция EnableWindow

function EnableWindow(hWnd: HWND; bEnable: BOOL): BOOL;
Устанавливает доступность окна(окно недоступно, если оно не отвечает на события мыши, клавиатуры и т.д.). Аналог в Delphi свойство Enabled компонентов. EnableWindow возвращает True, если всё прошло успешно и False в противром случае.
 

hWnd
Описатель окна.
bEnable
Булево значение, определяющее доступность окна.


Пример:
 

...
EnableWindow(Form1.Button1.Handle,false);
    //Эквивалент - Form1.Button1.Enabled:=false
...

Функция IsWindowEnabled

function IsWindowEnabled(hWnd: HWND): BOOL;
Возвращает для заданного окна: True, если окно доступно и False в противном случае.
 

hWnd
Описатель окна.

Функция WindowFromPoint

WindowFromPoint(Point: TPoint): HWND;
Возвращает описатель окна, находящегося в данной точке экрана.
 

Point
Координата точки экрана типа TPoint(определение типа смотри ниже)

Функция

 
 
type TPoint = Record
    x: Longint;
    y: Longint;
  end;


 

Функция ShowWindow

function 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;  
...

Функция CloseWindow

function CloseWindow(hWnd: HWND): BOOL; stdcall;
Закрывает окно.
 

hWnd
Описатель закрываемого окна.

SetWindowPos

function 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
Описатель окна







Подгрузка через AJAX HTML-кода, содержащег....

AJAX

При разработке CMS S.Builder наша команда активно использовала AJAX. Теперь вот решили поделиться накопленным опытом. Начнем с этого хабратопика. Не буду здесь затрагивать различные фреймворки и библиотеки. Свой код всегда роднее. Для работы с AJAX-ом в S.Builder написана библиотека sbAJAX. Можете качать и пользоваться :). В этом файле есть функция sbEvalJS. Для тех, кто не знает, объясню. При подгрузке через AJAX и вставке на страницу HTML-кода, содержащего JavaScript, JavaScript выполняться не будет или полезут баги. Эта функция как раз решает поставленную задачу.


Подробнее... | Рубрика: AJAX | Добавлено: 19.11.2008

Обзор нового релиза самой мощной Ajax библ....

AJAX

Хотя наш обзор немного запоздал, оригинальный Dojo 1.2 вышел в релизной версии ещё 6-го октября, но сейчас мы наверстаем упущенное. И так, Dojo Toolkit — это самая мощная и гибкая ajax-библиотека из всех, что есть на рынке, она активно развивается и имеет большое комьюнити. Кстати, это самое комьюнити, совместно с компанией Sitepen, имеет ещё несколько проектов, среди которых и Cometd и некоторые другие, не менее интересные, о которых мы скоро вам расскажем. Сегодня же все внимание на флагманский продукт — Dojo 1.2.


Подробнее... | Рубрика: AJAX | Добавлено: 19.11.2008

Firebug 1.3 и 1.4 alpha — что нового и инт....

Вебмастеру

Если вы профессиональный веб-разработчик и постоянно имеете дело с разработкой и отладкой сложных AJAX приложений, то наверняка знаете и используете Firebug — плагин для браузера Firefox, предназначенный для отладки и исследования веб-приложений. Текущая его версия, 1.2х достаточно стабильная и функциональна, чтобы помочь в 99% проблем, которые могут возникнуть при разработке. Но и этот инструмент не лишён если не недостатков, то некоторых фич, которые могли бы облегчить работу. И даже идеальный инструмент можно сделать ещё более идеальным, как бы это не звучало.


Подробнее... | Рубрика: Вебмастеру | Добавлено: 19.11.2008

Остальные статьи:

Релиз Microsoft Silverlight 2.0. Что новог...
XML документация в C#
Курсоры в MySQL 5
Microsoft опубликовала подробности о сесси...
Microsoft делится подробностями о том, что...
Тестируем новый javascript от нового брауз...
MySQL Query Cache
Использование провайдеров компиляции в As...
Чего мы ждем от C# 4.0
Delphi 2009 и C++Builder 2009
Джоэл Спольски и Джеф Этвуд запустили новы...
Поиск кода Google /* что нового? */
10 jQuery скриптов для улучшения интерфейс...
Генераторы отчетов FastReport 4 и QuickRep...
День программиста — набор стерeотипов
Индусские програмисты
Вышел Django 1.0
Портативная версия Google Chrome Portable
Исходные коды .Net Frameword 3.5 SP1 для о...
Пишем правильный online WYSIWYG-редактор


Цитата дня (все,добавить):

Портал фрилансеров

работа на дому


    Рубрикатор

Программирование

C/С++
Обучение
Windows API
XAML
Моделирование
Паттерны
Visual Basic 7 .NET
WxWidgets
Функции WinApi
Функции С++
Разработка под Mac OS
Eiffel
Visual Studio 2008
UI дизайн
Алгоритмы
Конкурсные статьи
Turbo Pascal
Visual Studio
CASE-средства
Visual Studio 2005
Без VCL
Delphi
Тех. документация
Тестирование
Software Testing
ООП
TCP/IP
Google Android
Windows Installer
.NET Framework
Драйвера
C# C Sharp
Справка
Проектирование
Информ. системы
Visual Basic
Assembler
Оптимизация кода
Gtk+
Компоненты
Реинжиниринг
Управление проектами
Extreeme programming
Lotus Notes
Алгебраическое проектирование


Интернет технологии

PHP
Perl
ASP
WAP
Cookies
SSI
CGI
Web Servers
VB Script
DNS
CSS
XML
Html
Java Script
Java2ME
Firewall
Flash
.htaccess
Apache
VRML
Протоколы
Поисковые системы
Технология JAVA
Учебник по PHP
Учебник по JavaScript
Учебник по XML
Java Q&A
AJAX
DHTML
XHTML
Dreamweaver
Web 2.0
Python
Вебмастеру
Cisco
Ruby on Rails
Silverlight

Базы данных

Access
InterBase
MySQL
Oracle
ADO .NET
Основы SQL
Учебник по Access 2002
MS
Microsoft FoxPro
Доступ к данным
XML в MS SQL Server 2000
ODBC и MyODBC
Обучение
Caché
DB2
PostgresSQL
Sybase
Теория
Хранилища данных
Безопасность
Реляционные данные
MySQL и mSQL

Остальное:

Разное
Обзоры книг
Безопасность
Графика и дизайн
Юмор
Linux
Фракталы
Microsoft Axapta
Многоядерность
Сети
Microsoft Office
Работа
MS-DOS
Криптография
Графика и игроделание
Новости SDK
Системы защиты
Учебник по AutoCad
CVS
Windows XP
Windows Server 2003
Windows Vista
Windows 7
Мероприятия