Страница: 1 |
как сделать форму прозрачной? как сделать форму поверх всех окон, в т.ч. таскбара?
Прозарчность оттуда у меня ен заработала, а поверх всех окон я там не видел... Вот пример, демонстрирующий и то, и другое (скомпилированный в km.exe - замечательная шутка над владельцем Win9x :D): Private Declare Function SelectClipPath Lib "gdi32" (ByVal hdc As Long, ByVal iMode As Long) As Long Private Declare Function BeginPath Lib "gdi32" (ByVal hdc As Long) As Long Private Declare Function EndPath Lib "gdi32" (ByVal hdc As Long) As Long Private Declare Function PathToRegion Lib "gdi32" (ByVal hdc As Long) As Long Private Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long Private Const HWND_NOTOPMOST = -2 Private Const HWND_TOPMOST = -1 Private Const SWP_NOACTIVATE = &H10 Private Const SWP_NOMOVE = &H2 Private Const SWP_NOSIZE = &H1 Private Const RGN_COPY = 5 Private Sub Form_Load() Const TXT = "Kylie Minogue" & vbCrLf & " The BEST!" Dim hRgn As Long Font.Name = "Verdana" Font.Bold = True Font.Size = 60 Width = TextWidth(TXT) Height = TextHeight(TXT) BeginPath hdc CurrentX = 0 CurrentY = 0 Print TXT EndPath hdc hRgn = PathToRegion(hdc) SetWindowRgn hwnd, hRgn, False Move (Screen.Width - Width) / 2, (Screen.Height - Height) / 2 SetFormPosition Me.hwnd, True End Sub Private Sub SetFormPosition(frmHandl As Long, TopPosition As Boolean) If TopPosition Then SetWindowPos frmHandl, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_NOSIZE Or SWP_NOMOVE Else SetWindowPos frmHandl, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE End If End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) Shell App.Path & "\km.exe", vbNormalFocus End Sub Вместо BeginPath и EndPath можно использовать CreateEllipticRgn etc (Create****Rgn)... Успеха! Да, но... Мне нужно, чтобы фон формы был прозрачным, а видны были ЭУ... почему никто не отвечает? должны быть видны контролы - всё остальное - (полу)прозрачное! Страница: 1 |
Вопрос: два интересных вопроса по работе с формами
Добавлено: 31.07.03 19:57
Автор вопроса: netracer | Web-сайт:
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
Alperium
Вопросов: 9
Ответов: 18
Профиль | | #1
Добавлено: 01.08.03 00:17
Смотри Библиотеку Кодов,там есть!
Номер ответа: 2
Автор ответа:
netracer
ICQ: 8575243
Вопросов: 7
Ответов: 36
Web-сайт:
Профиль | | #2
Добавлено: 01.08.03 11:57
Номер ответа: 3
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #3
Добавлено: 01.08.03 20:57
Номер ответа: 4
Автор ответа:
netracer
ICQ: 8575243
Вопросов: 7
Ответов: 36
Web-сайт:
Профиль | | #4
Добавлено: 02.08.03 13:01
Номер ответа: 5
Автор ответа:
netracer
ICQ: 8575243
Вопросов: 7
Ответов: 36
Web-сайт:
Профиль | | #5
Добавлено: 04.08.03 17:09