Изменение стиля формы...

Программирование на Visual Basic for Applications
X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Изменение стиля формы...

Сообщение X-BOND » 17.05.2005 (Вт) 19:03

Провожу небольшие эксперименты с окнами в VBA. Уже сделал полупрозрачность, применил регион, попробовал добавить кнопочки Max/Min. Вроде работает, но после изменения свойства Form.Caption кнопочки пропадают.
Можно ли сабкласить формы в VBA без последствий?

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

Сообщение GSerg » 18.05.2005 (Ср) 5:16

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

Rombo
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 12.12.2004 (Вс) 22:21
Откуда: москва

Сообщение Rombo » 18.05.2005 (Ср) 8:12

это через WinAPI ?
ой, а можно исходник в студию как наглядное пособие плиз ! :D

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 18.05.2005 (Ср) 18:24

Для начала идешь суда и качаешь API-Guide

А исходник очень прост:
Код: Выделить всё
Private Sub UserForm_Activate()
Dim hWnd As Long
Dim wStyle as Long

wStyle = WS_VISIBLE Or WS_CLIPSIBLINGS Or WS_CLIPCHILDREN Or WS_CAPTION Or WS_SYSMENU Or WS_THICKFRAME Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX
hWnd = GetForegroundWindow
Call SetWindowLong(hWnd, GWL_STYLE, wStyle)
Call DrawMenuBar(hWnd)

End Sub


Декларации функций и константы смотришь в API-Guide
Последний раз редактировалось X-BOND 23.05.2005 (Пн) 19:02, всего редактировалось 1 раз.

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 19.05.2005 (Чт) 12:28

GSerg писал(а):А что, последствия бывают?

Ну типа подводные камни, как с потоками на VB. Вроде как и можно, но после сталкиваешся с определенными трудностями.
Вот у тебя, например, есть личный опыт сабклассинга VBA ?

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

Сообщение GSerg » 19.05.2005 (Чт) 14:36

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

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 19.05.2005 (Чт) 15:42

А то. Делиться опытом надо :)
Вот, например, как отловить момент изменения текста заголовка?

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

Сообщение GSerg » 19.05.2005 (Чт) 15:58

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

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 20.05.2005 (Пт) 8:59

Не важно - зачем, важно - как :)
Ладно, предложи свой вариант, чтобы после изменения заголовка стиль окна не изменялся.

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

Сообщение GSerg » 20.05.2005 (Пт) 13:05

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

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 20.05.2005 (Пт) 15:18

Я вроде как в первом топике проблему описал...
Вообщем сделал я просто. После каждого изменения заголовка (заголовок использую в качестве статусбара) заново применяю стиль.
Хотя есть наверно более изящный способ... :roll:

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

Сообщение GSerg » 20.05.2005 (Пт) 15:44

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

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 20.05.2005 (Пт) 16:18

Я люблю применять нестандартные решения.
Зачем нам лишние контролы :)

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

Сообщение GSerg » 20.05.2005 (Пт) 16:25

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

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 20.05.2005 (Пт) 16:40

Ну Вы, батенька, и консерватор :)
или Label, это не контрол?
и почему статусбар должен быть внизу? :)
Долой стереотипы! :) (см. подпись)

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 23.05.2005 (Пн) 17:28

Продолжаем тему...

Попытался присвоить окошку иконку, а не хочет.

Call SendMessage(hWnd, WM_SETICON, 0, LoadIcon(GetModuleHandle("SHELL32.DLL"), ByVal 33))

:roll:


Вернуться в VBA

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

Сейчас этот форум просматривают: Google-бот и гости: 88

    TopList