powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Чтобы форма сначала стала прозрачной а уже потом загрузилась
5 сообщений из 5, страница 1 из 1
Чтобы форма сначала стала прозрачной а уже потом загрузилась
    #36004087
Namik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго Вам времени суток
Уважаемые господа

при наличии времени прошу Вас помочь

нижеуказанным кодом я делаю форму прозрачной

-------------------------------------------------------------

Const LWA_COLORKEY = &H1
Const LWA_ALPHA = &H2
Const GWL_EXSTYLE = (-20)
Const WS_EX_LAYERED = &H80000
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 Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long


Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Const SW_SHOWNORMAL = 1

Option Explicit
'Mike McGrath (UK) 1998: This example opens form by increment steps to reach the forms set size

Rem define type
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Private Sub Form_Activate()
Dim mcolor As Long
Dim Ret As Long
Ret = GetWindowLong(Me.hwnd, GWL_EXSTYLE)
Ret = Ret Or WS_EX_LAYERED
SetWindowLong Me.hwnd, GWL_EXSTYLE, Ret
SetLayeredWindowAttributes Me.hwnd, Val(&HFF00FF), 0, LWA_COLORKEY
End Sub

----------------------------------------------------------------------

все работает за исключением

вначале появляется сплошной фон формы (он в данном случае - &H00FF00FF&)

а уже после фон убирается
форма становится прозрачной
и прорисовывается мое изображение без формы
мое изображение это карта map.gif размер 730 - 590

подскажите пожалуйста как сделать так
чтобы сначала форма стала прозрачной а уже потом предстала перед пользователем

С Уважением и Благодарностью
Намик
...
Рейтинг: 0 / 0
Чтобы форма сначала стала прозрачной а уже потом загрузилась
    #36004507
Namik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
неужели проблема не решаема

я пробовал также вначале загружать форму заставку
а для формы с картинкой указывал Load frmmap

а уже после выгружая форму заставку давал команду frmmap.show

эфект тот же

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

С Уважением и Благодарностью
Намик
...
Рейтинг: 0 / 0
Чтобы форма сначала стала прозрачной а уже потом загрузилась
    #36004821
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Namik,
Form_Activate - это уже поздновато.
Можно попробовать сделать форму невидимой по умолчанию (в конструкторе Visible=False), код из Form_Activate перенести в Form_Load, туда же добавить Visible=True.
...
Рейтинг: 0 / 0
Чтобы форма сначала стала прозрачной а уже потом загрузилась
    #36004841
EmilRegis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бенедикт +1, то же самое хотел написать))
...
Рейтинг: 0 / 0
Чтобы форма сначала стала прозрачной а уже потом загрузилась
    #36005676
Namik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодарю Вас
все работает

С уважением и Благодарностью
Намик
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Чтобы форма сначала стала прозрачной а уже потом загрузилась
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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