Прилепить одну форму к другой.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
raut
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 26.07.2008 (Сб) 6:22

Прилепить одну форму к другой.

Сообщение raut » 26.07.2008 (Сб) 6:27

Есть две формы. Одна из них(номер один) порезана и имеет неправильную форму. нужно её прилепить к другой форме(номер два) так, чтобы форма номер два не перекрывала форму один, когда мы тычем в неё мышкой. как такое сделать?

зы поиск ничего не дал, хотя может плохо искал.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Прилепить одну форму к другой.

Сообщение Viper » 26.07.2008 (Сб) 7:05

raut писал(а):Одна из них(номер один) порезана и имеет неправильную форму.
Вот с этого места подробнее!
raut писал(а):нужно её прилепить к другой форме(номер два) так, чтобы форма номер два не перекрывала форму один, когда мы тычем в неё мышкой.
В чего тычем мышкой? И собственно причем тут мышка?
Прилепание одной формы к другой - есть движение второй формы следом за первой. Это тебе надо? Для прямоугольных форм сие решается свойствами Left, Top, Width, Height и методом Move, в сочетании с перехватом события WM_MOVE.
Весь мир матрица, а мы в нем потоки байтов!

raut
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 26.07.2008 (Сб) 6:22

Сообщение raut » 26.07.2008 (Сб) 12:44

пусть будет просто форма(номир один) Style:none. за ней есть ещё одна форма(номир два). первая форма должна всё время быть перед формой два(и только перед ней) не зависимо от того, у какой из форм сейчас фокус. тоесть форма два, когда она активна, не должна перекрывать форму один.

Alprog
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 127
Зарегистрирован: 15.05.2008 (Чт) 14:21
Откуда: Владивосток

Сообщение Alprog » 26.07.2008 (Сб) 19:23

Эм... я так понял, тебе нужен вызов модальной формы.

Хотя, это зависит от того, что ты вкладываешь в понятие "перекрывать". :)

raut
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 26.07.2008 (Сб) 6:22

Сообщение raut » 26.07.2008 (Сб) 20:32

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

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

Atoman
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 109
Зарегистрирован: 01.02.2008 (Пт) 6:36

Сообщение Atoman » 26.07.2008 (Сб) 21:25

Код: Выделить всё
'in Form1

Dim frm As New Form2

Private Sub Form_Load()
frm.ShowInParent Me.hwnd
End Sub

Private Sub Form_Unload(Cancel As Integer)
Unload frm
End Sub

'in Form2

Private Const GWL_HWNDPARENT As Long = -8

Public Sub ShowInParent(ByVal Owner As Long)
SetWindowLong Me.hwnd, GWL_HWNDPARENT, Owner
Me.Show
End Sub


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 59

    TopList