Кнопки минимизировать, максимизировать может я ослеп

Программирование на Visual Basic for Applications
YanMinsk
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 02.06.2009 (Вт) 1:09

Кнопки минимизировать, максимизировать может я ослеп

Сообщение YanMinsk » 09.06.2009 (Вт) 21:45

Ваще уже не догоняю, читаю хелп
Код: Выделить всё
UserForm Window
   
Allows you to create the windows or dialog boxes in your project. You draw and view controls on a form.

While you are designing a form:

Each form window has a Maximize, Minimize, and Close button.


Но как установить эти кнопки я в упор не нахожу.

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Кнопки минимизировать, максимизировать может я ослеп

Сообщение MIT » 09.06.2009 (Вт) 21:50

Min/MaxButton
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

YanMinsk
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 02.06.2009 (Вт) 1:09

Re: Кнопки минимизировать, максимизировать может я ослеп

Сообщение YanMinsk » 09.06.2009 (Вт) 22:31

To Mit. Если можно поподробнее в VBA я никак не найду Min/MaxButton

arvitaly
Постоялец
Постоялец
 
Сообщения: 485
Зарегистрирован: 12.04.2009 (Вс) 0:30
Откуда: Казань

Re: Кнопки минимизировать, максимизировать может я ослеп

Сообщение arvitaly » 09.06.2009 (Вт) 22:32

Их и нет, надо делать вручную

YanMinsk
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 02.06.2009 (Вт) 1:09

Re: Кнопки минимизировать, максимизировать может я ослеп

Сообщение YanMinsk » 09.06.2009 (Вт) 22:38

Афигеть :x
И как это сделать :roll:

arvitaly
Постоялец
Постоялец
 
Сообщения: 485
Зарегистрирован: 12.04.2009 (Вс) 0:30
Откуда: Казань

Re: Кнопки минимизировать, максимизировать может я ослеп

Сообщение arvitaly » 09.06.2009 (Вт) 23:32

2 cпособа находить hwnd это формы и посылать ей сообщение либо просто уменьшать и увеличивать ее размер

karlex
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 138
Зарегистрирован: 30.03.2009 (Пн) 20:25
Откуда: Пермский край, г.Кунгур

Re: Кнопки минимизировать, максимизировать может я ослеп

Сообщение karlex » 09.06.2009 (Вт) 23:38

arvitaly писал(а):2 cпособа находить hwnd это формы и посылать ей сообщение либо просто уменьшать и увеличивать ее размер

Это для того чтобы кнопки появились?
Все гениальное — просто!
-------------------------------------
Кто ищет — тот всегда найдет!
-------------------------------------
Лень — двигатель прогресса.
Прогресс — двигатель лени.

YanMinsk
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 02.06.2009 (Вт) 1:09

Re: Кнопки минимизировать, максимизировать может я ослеп

Сообщение YanMinsk » 09.06.2009 (Вт) 23:47

Вот и я офигеваю :twisted:

arvitaly
Постоялец
Постоялец
 
Сообщения: 485
Зарегистрирован: 12.04.2009 (Вс) 0:30
Откуда: Казань

Re: Кнопки минимизировать, максимизировать может я ослеп

Сообщение arvitaly » 09.06.2009 (Вт) 23:51

Это чтобы они работали (а как я уже написал не знаю почему вы оба не заметили читать видимо не умеете - кнопку рисовать придется ручками)

И еще для чего эти кнопки в Excel???

karlex
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 138
Зарегистрирован: 30.03.2009 (Пн) 20:25
Откуда: Пермский край, г.Кунгур

Re: Кнопки минимизировать, максимизировать может я ослеп

Сообщение karlex » 10.06.2009 (Ср) 7:56

arvitaly писал(а):Это чтобы они работали (а как я уже написал не знаю почему вы оба не заметили читать видимо не умеете - кнопку рисовать придется ручками)

Ничего рисовать не нужно, это делается через стили окна.
Код: Выделить всё
Option Explicit

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function IsWindow Lib "user32" (ByVal hWnd As Long) As Long

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Private Const GWL_STYLE = (-16)

Private Const WS_MAXIMIZEBOX = &H10000
Private Const WS_MINIMIZEBOX = &H20000

Private Sub UserForm_Initialize()
    Dim dwStyle As Long, hWnd As Long
    hWnd = FindWindow("ThunderDFrame", Me.Caption)
    If IsWindow(hWnd) <> 0 Then
        dwStyle = GetWindowLong(hWnd, GWL_STYLE)
        If dwStyle <> 0 Then
            dwStyle = dwStyle Or WS_MAXIMIZEBOX Or WS_MINIMIZEBOX
            Call SetWindowLong(hWnd, GWL_STYLE, dwStyle)
        End If
    End If
End Sub
Все гениальное — просто!
-------------------------------------
Кто ищет — тот всегда найдет!
-------------------------------------
Лень — двигатель прогресса.
Прогресс — двигатель лени.


Вернуться в VBA

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

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

    TopList