Нужен контрол - "Форма"

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

Нужен контрол - "Форма"

Сообщение jangle » 07.06.2007 (Чт) 17:26

Подскажите, может кто видел. Нужен контрол, которой полностью симулирует стандартную VB форму. И при этом является контейнером для других VB контролов.

EUGY
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 214
Зарегистрирован: 09.11.2006 (Чт) 22:51
Откуда: Мурманск

Сообщение EUGY » 07.06.2007 (Чт) 17:51

Не то чтобы прямо один-в-один, но близко к теме:

http://www.freevbcode.com/ShowCode.asp?ID=4349

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 07.06.2007 (Чт) 18:54

Близко, но не совсем )) Мне нужно, чтобы на форме лежала вторая форма, а не контролы как в этом примере. И чтобы можно было изменять ее размеры и т.д.

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

Сообщение Amed » 07.06.2007 (Чт) 18:57

А чем не подходит SetParent второй формы "внутрь" первой?
Функциональность будет полная.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 07.06.2007 (Чт) 19:29

А можно пример кода?

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 07.06.2007 (Чт) 19:57

Делаешь в проекте две формы, в коде первой из них пишешь:

Код: Выделить всё
Private Declare Function SetParent Lib "user32.dll" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long

Private Sub Form_Load()
Form2.Show
SetParent Form2.hWnd, Form1.hWnd
End Sub
Подпись проходит рефакторинг

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 08.06.2007 (Пт) 8:34

Lumen - спасибо! :)

И еще один вопрос, как закрепить дочернюю форму, в левом верхнем углу родительской формы, чтобы ее нельзя было перемещать по родительской форме, но в тоже время, можно было изменять ее размер?

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: Нужен контрол - "Форма"

Сообщение Andrey Fedorov » 08.06.2007 (Пт) 11:52

jangle писал(а):Подскажите, может кто видел. Нужен контрол, которой полностью симулирует стандартную VB форму. И при этом является контейнером для других VB контролов.


Что-то у меня большое подозрение что это называется UserControl...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 08.06.2007 (Пт) 12:15

Чтобы было понятнее, вот пример. Надо сделать так, чтобы Form2 нельзя было перемещать за кепшон по Form1, а только изменять ее размеры растягивая за правый край.
Вложения
prj.zip
(2 Кб) Скачиваний: 35

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 08.06.2007 (Пт) 12:25

Сабклассить на предмет WM_WINDOWPOSCHANGING.
Изображение

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 08.06.2007 (Пт) 12:31

Вообще-то у формы есть еще свойство Moveable.
Lasciate ogni speranza, voi ch'entrate.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 08.06.2007 (Пт) 12:42

Вообще-то у формы есть еще свойство Moveable.


Спасибо! То что нужно.

Того-же результата добился на API, прибив пункт системного меню: Переместить.


Код: Выделить всё
Option Explicit

Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Const SC_MOVE = &HF010
Const MF_BYCOMMAND = &H0

Private Sub Form_Load()
  DeleteMenu GetSystemMenu(Me.hwnd, 0), SC_MOVE, MF_BYCOMMAND
End Sub


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

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

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

    TopList  
cron