Размер формы по hWnd

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Размер формы по hWnd

Сообщение Vovik » 29.10.2004 (Пт) 17:18

Скажите, можно ли узнать размер формы (или компонента) по его hWnd? Если можно, то можно ли потом установить свои значения? :roll:

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 29.10.2004 (Пт) 17:34

Declare Function GetWindowRect Lib "user32" Alias "GetWindowRect" (ByVal hwnd As Long, lpRect As RECT) As Long

Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Примеры нужны, или и так всё ясно? :)

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 29.10.2004 (Пт) 20:08

А если у меня компонент, допустим picbox - оно будет работать? :roll:

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 29.10.2004 (Пт) 20:19

Да, должно, т.к. у PictureBox есть hwnd...

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 30.10.2004 (Сб) 9:48

Amed писал(а):Да, должно, т.к. у PictureBox есть hwnd...

Да.. точно.. все работает как надо.... Только для чего нужен параметр hWndInsertAfter? (я поставил ByVal 0) :roll:

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 30.10.2004 (Сб) 16:29

Потому что функция SetWindowPos() - многоцелевая, и в т.ч. позволяет управлять порядком отображения окон на декстопе, в смысле какое каким накрывается, и наоборот - поверх какого выводится. Почитай MSDN, там все написано...

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 30.10.2004 (Сб) 17:39

Да достаточно и одного API-Guide - там тоже все параметры хорошо описаны. :roll:

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 30.10.2004 (Сб) 19:22

A.A.Z. писал(а):Да достаточно и одного API-Guide - там тоже все параметры хорошо описаны. :roll:

Да, но не всех функций :). Эта, может, и есть, а вот какая-нибудь другая - отсутствует. Первоисточники всегда лучше, хотя я лично находил в MSDN ошибки...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 7

    TopList