powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как сделать форму???
4 сообщений из 4, страница 1 из 1
Как сделать форму???
    #33151140
bogdan_g
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
У меня такой вопрос...Мне нужно сделать форму, которая б "прилипала" к краям экрана, если ее подвинуть к краю... Пример такой формы может быть toolbox или Object Browser в VB... Кто знает, подскажите какой контрол можна использовать в этом случае (мне говорили что нужно использовать coolbar...)
Заранее благодарен!
...
Рейтинг: 0 / 0
Как сделать форму???
    #33151416
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bogdan_gВсем привет!
У меня такой вопрос...Мне нужно сделать форму, которая б "прилипала" к краям экрана, если ее подвинуть к краю... Пример такой формы может быть toolbox или Object Browser в VB... Кто знает, подскажите какой контрол можна использовать в этом случае (мне говорили что нужно использовать coolbar...)
Заранее благодарен!

По моему без вызова Winapi не обойтись...
...
Рейтинг: 0 / 0
Как сделать форму???
    #33153306
arseny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Брось таймер на форму и поставь интервал в 50 и тестируй:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
Option Explicit

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

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

Private Sub Timer1_Timer()
    Dim DeskTopWorkArea As RECT
    Dim lTwipsToDockX As Long
    Dim lTwipsToDockY As Long
    
    
    
    Timer1.Enabled = False
    
    
    lTwipsToDockX =  25  * Screen.TwipsPerPixelX
    lTwipsToDockY =  25  * Screen.TwipsPerPixelY
    
    SystemParametersInfo SPI_GETWORKAREA,  0 , DeskTopWorkArea,  0 
    
    
    With DeskTopWorkArea
        .Left = .Left * Screen.TwipsPerPixelX
        .Top = .Top * Screen.TwipsPerPixelY
        .Right = .Right * Screen.TwipsPerPixelX
        .Bottom = .Bottom * Screen.TwipsPerPixelY
    
    
        If Me.Left - .Left <= lTwipsToDockX Then Me.Left = .Left
        If Me.Top - .Top <= lTwipsToDockY Then Me.Top = .Top
        If .Right - Me.Left - Me.Width <= lTwipsToDockX Then Me.Left = .Right - Me.Width
        If .Bottom - Me.Top - Me.Height <= lTwipsToDockY Then Me.Top = .Bottom - Me.Height
    End With
    
    
    Timer1.Enabled = True
End Sub
...
Рейтинг: 0 / 0
Как сделать форму???
    #33158167
Denri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WindowState делаеш рвным 2 и все
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как сделать форму???
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]