Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: строка меню "Окно"
Форум программистов > Системное программирование > Visual Basic
Alex77777
при исользовании материнского окна и его дочерних окно иногда требуется, чтобы открытые окна располагались в определенном порядке: горизонтально, каскадом, вертикально, во весь экран и т.п. Я знаю только первые три константы Arrange vbTileHorizontal, Arrange vbTileVertical и Arrange vbCascade, а вот остальные не знаю, кто знает другие константы расположения дочерних окон напишите плиз.
Pasha
Для: Alex77777
]]>http://msdn2.microsoft.com/en-us/library/k...x60(VS.80).aspx]]>
Переходи на VB.NET
Alex77777
как я понял чтоб сделать дочернее окно во весь экран нужно в коде материнского окна строки меню"Окно" прописать просто константу "VbArrangeIcons" (т.к. другие константы работают), только вот она не работет, может ли это быть из-за того что я при загрузке формы задаю ее ширину-высоту?
Normann
Любая vb константа это всего лишь число, в основном это перечисления от 0 и т.д. . Те константы которые ты перечислил и есть такое перечисление, в твоем случае это 1, 2 и 0 соответсвенно (не веришь проверь (msgbox vbTile.....)). Что тебе мешает использовать просто следующие числа которые будут соответствовать другим константам?
Alex77777
долго меня не было в городе
пишу msgbox vbTile3 ит.д. ругается: "переменная не определена",
либо по другому, тоже ругается:ошибку синтаксиса"
может я просто тормоз sad.gif , и чего то не догоняю unsure.gif , разъясните мне пожалуйста поподробнее.
Normann
Цитата(Alex77777 @ 18:08:2007, 15:40 ) *
долго меня не было в городе
пишу msgbox vbTile3 ит.д. ругается: "переменная не определена",
либо по другому, тоже ругается:ошибку синтаксиса"
может я просто тормоз sad.gif , и чего то не догоняю unsure.gif , разъясните мне пожалуйста поподробнее.

А на кой черт ты скажи ты так пишешь? Вообщето под ..... подразумевалось Horizontal или Vertical laugh.gif . А 1, 2 или 3 это значения констант еще раз повторяю:
vbTileHorizontal = 1
vbTileVertical = 2
vbCascade = 0
Использовать числа вместо констант это значит что-то в роде:
В место
MDIForm1.Arrange vbTileHorizontal
MDIForm1.Arrange vbTileVertical
MDIForm1.Arrange vbCascade
использовать
MDIForm1.Arrange 1
MDIForm1.Arrange 2
MDIForm1.Arrange 0

Когда это испробуешь смотри вопрос из предидущего моего поста по этой теме.
Alex77777
про цифры я понял, работает! biggrin.gif
константе VbArrangeIcons соответствует цифра "3"
ставлю ее и она не работает,
если поставить 4 и выше ругается: "недопустимый вызов процедуры или параметра".
Вопрос: почему не раскрывает на весь экран, хотя стоит цифра "3" или сама константа "VbArrangeIcons"?
Normann
Потому что она не должна делать этого. Arrange - англ. инф. Упорядочивать.
Alex77777
Спасибо за пояснение! smile.gif
Значит придется вычеркнуть этот пункт из меню на неопределенное время, пока не подвернется данная констатнта.
Normann
Не будет другой константы, их всего четыре. Если функция назвается упорядочивание то она и занимается только упорядочиванием. Развертывать окна тебе придется самому.
Alex77777
тогда как же работает данная функция во всех приложения???
может быть там стоит код: активная форма ширина и высота = параметрам экрана???
вот что у меня получилось и все работает так ка надо: biggrin.gif

If not Me.activeForm Is nothing Then
dim As object
Set A = activeForm
With A
.left=0
.top=0
.Width=Screen.Width
.Heigt=Screen.Heigt
End With
End if

Всем огромное спасибо!!!
Теперь хоть про константы эти больше знать буду. smile.gif
Normann
Цитата(Normann @ 20:08:2007, 14:28 )
Развертывать окна тебе придется самому.
*

Вообщето я имел в виду "тебе" как программисту, а не как пользователю, есетвенно нужно код писать, только не такой как у тебя, а окно действительно должно быть развернуто, а не растянуто. Используй свойство формы WindowState. И на кой ты используешь эту А?
Alex77777
спасибо за замечание про "А", код сократился biggrin.gif
свойство формы WindowState я не могу использовать, т.к. при загрузке дочерней формы ее размер уже задан мной. если я ставю данное свойство как:
ActiveForm.WindowState.Maximized , то он ругается
Normann
Если бы я был компилятором то я тоже ругался бы smile.gif

ActiveForm.WindowState.Maximized

Полная бессмыслица.
Во первых точки используются в бейсике для раскрытия членов каких либо объектов, WindowState это не объект а свойство которому можно либо задавать либо извлекать значение. Поверь WindowState и нужен для того чтобы во время выполнения ним задавать состояние окна.
Alex77777
Окей, я все понял и разобрался: нужно просто как константе присвать свойству WindowState цифровое значение в данном случае от 0 до 2. Так????
по крайне мере у меня все работает, и код еще больше сократился biggrin.gif
Огромное спасибо!
Normann
Ты все правильно понял smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2009 IPS, Inc.