Местоположение формы

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

Местоположение формы

Сообщение AaA » 03.09.2005 (Сб) 16:32

Как программно расположить форму влевом верхнем углу, вправом верхнем углу, влевом нижнем углу и вправом нижнем углу.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 03.09.2005 (Сб) 16:42

Углу чего?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

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

Сообщение AaA » 03.09.2005 (Сб) 16:45

В углу экрана

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 03.09.2005 (Сб) 16:49

Код: Выделить всё
Private Sub Form_Load()
    With Me
        .Top = Screen.Height - .Height - 500
        .Left = Screen.Width - .Width
    End With
End Sub
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 03.09.2005 (Сб) 16:50

Видимо, для этого сначала нужно узнать координаты углов экрана.
Какие есть идеи?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

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

Сообщение AaA » 03.09.2005 (Сб) 16:52

BV писал(а):
Код: Выделить всё
Private Sub Form_Load()
    With Me
        .Top = Screen.Height - .Height - 500
        .Left = Screen.Width - .Width
    End With
End Sub


Спасибо сейчас попробую :D

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 03.09.2005 (Сб) 17:01

SystemParametersInfo
с SPI_GETWORKAREA
и за работу :)
Моду создают модоки, а распространяют модозвоны.

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 03.09.2005 (Сб) 17:07

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

Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long
Private Const SPI_GETWORKAREA As Long = 48

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

Private Sub Form_Load()
    Dim tRCT As RECT
    SystemParametersInfo SPI_GETWORKAREA, ByVal 0&, VarPtr(tRCT), ByVal 0&
   
    'left top
    Me.Top = tRCT.Top * Screen.TwipsPerPixelY
    Me.Left = tRCT.Left * Screen.TwipsPerPixelX
   
    'left bottom
    Me.Top = (tRCT.Bottom - tRCT.Top) * Screen.TwipsPerPixelY - Me.Height
    Me.Left = tRCT.Left * Screen.TwipsPerPixelX
   
    'right top
    Me.Top = tRCT.Top * Screen.TwipsPerPixelY
    Me.Left = (tRCT.Right - tRCT.Left) * Screen.TwipsPerPixelX - Me.Width
   
    'right bottom
    Me.Top = (tRCT.Bottom - tRCT.Top) * Screen.TwipsPerPixelY - Me.Height
    Me.Left = (tRCT.Right - tRCT.Left) * Screen.TwipsPerPixelX - Me.Width
End Sub
Последний раз редактировалось hCORe 04.09.2005 (Вс) 16:21, всего редактировалось 1 раз.
Моду создают модоки, а распространяют модозвоны.

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Re: Местоположение формы

Сообщение vvs_adm » 04.09.2005 (Вс) 8:40

AaA писал(а):Как программно расположить форму влевом верхнем углу, вправом верхнем углу, влевом нижнем углу и вправом нижнем углу.
Самое простое :
Код: Выделить всё
   Me.WindowState = vbMaximized
Вот собственно и все ;)
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.09.2005 (Вс) 11:15

vvs_adm, так это во всех четырёх углах сразу получится ;-)
Изображение

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

Сообщение Amed » 04.09.2005 (Вс) 11:32

В четырех углах экрана по окну. Сколько всего окон? :)

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 08.09.2005 (Чт) 17:51

To Tyomitch Зато будет то, что он хотел... или во всяком случае то, что он спросил :)
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!


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

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

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

    TopList  
cron