На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual Basic: Общие вопросы
Здесь обсуждаются вопросы по языку Visual Basic 1-6 (а так же по схожим языкам, как, например, PowerBASIC).
Вопросы по Visual Basic .NET (это который входит в состав Visual Studio 2002/2003/2005/2008+, для тех, кто не в курсе) обсуждаются в разделе .NET.

Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что Вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются. Студенты, вам сюда: ПОМОЩЬ СТУДЕНТАМ!
4. Используйте теги [ code=vba ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Формулируйте свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной (и более) давности, без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта user posted image FAQ Раздела user posted image Кладовка user posted image Наши Исходники user posted image API-Guide user posted image Поиск по Разделу user posted image MSDN Library Online user posted image Google

Ваше мнение о модераторах: user posted image SCINER, user posted image B.V.
Модераторы: SCINER, B.V.
  
> Прозрачность формы , В ФАК.
    Прива. Я тут накатал примерчик про прозрачность формы, точнее 5 примеров. Просто везде частенько спрашивают "Как?".
    Сообщение отредактировано: Vasya2000 -

    Прикреплённый файлПрикреплённый файл_prozrachnost.rar (18.26 Кбайт, скачиваний: 912)
      Да как - то у меня не работает. наверно потому что Windows Me. А вот пример, вызывай функцию Transparent с именем формы или просто Transparent Me. Только с Shape & Line похоже не тянет.

      ЭТО В МОДУЛЬ.

      ExpandedWrap disabled
        Public Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal Hrgn As Long, ByVal bRedraw As Boolean) As Long
        Public Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
        Public Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
        Public Const RGN_DIFF = 4
        Public Const RGN_OR = 2
         
        Public Function Transparent(FormName As Form)
        Dim FullRgn As Long
        Dim Rgn As Long
        Dim CaptionHeight As Integer
        FormName.ScaleMode = 3
        FullRgn = CreateRectRgn(0, 0, FormName.Width, FormName.Height)
        Rgn = CreateRectRgn(0, CaptionHeight, FormName.Width, FormName.Height)
        CombineRgn FullRgn, FullRgn, Rgn, RGN_DIFF
         
        For Each Control In FormName.Controls
        If FormName.BorderStyle = 1 Or FormName.BorderStyle = 3 Or FormName.BorderStyle = 4 Or FormName.BorderStyle = 5 Then
            CaptionHeight = 0
            Rgn = CreateRectRgn(Control.Left + 3, (Control.Top + CaptionHeight + 22), (Control.Left + Control.Width + 3), (Control.Top + Control.Height + CaptionHeight + 22))
            CombineRgn FullRgn, FullRgn, Rgn, RGN_OR
        ElseIf FormName.BorderStyle = 2 Then
            CaptionHeight = 0
            Rgn = CreateRectRgn(Control.Left + 4, (Control.Top + CaptionHeight + 23), (Control.Left + Control.Width + 3), (Control.Top + Control.Height + CaptionHeight + 23))
            CombineRgn FullRgn, FullRgn, Rgn, RGN_OR
        Else
            CaptionHeight = 0
            Rgn = CreateRectRgn(Control.Left + 0, (Control.Top + CaptionHeight), (Control.Left + Control.Width + 0), (Control.Top + Control.Height + CaptionHeight))
            CombineRgn FullRgn, FullRgn, Rgn, RGN_OR
        End If
        Next Control
        SetWindowRgn FormName.hwnd, FullRgn, True
        End Function
        Я тут тоже накатал, если кому надо то... ;)
        Прикреплённый файлПрикреплённый файлprozrachnost.zip (2.14 Кбайт, скачиваний: 245)
          И ещё чуть не забыл. В этом аттаче 3 примера. :yes:
          Прикреплённый файлПрикреплённый файлProzrachno_rgn.rar (6.75 Кбайт, скачиваний: 236)
            Неплохо бы отдельные контролы делать ПОЛУпрозрачными
            Сообщение отредактировано: Rostik Ultra -
              1. Он говорит о том чтобы сами контролы были полупрозрачными.
              2. Юзай Clear C или asm. Будешь таскать Office на дискетке. Кто как хочет тот так и ....
                Цитата nash @
                1. Он говорит о том чтобы сами контролы были полупрозрачными.
                2. Юзай Clear C или asm. Будешь таскать Office на дискетке. Кто как хочет тот так и ....

                Со вторым пунктом поподробнее ( кинь ссылки )
                  Super-Vadim ты в будующем можеш EXE'шник в архивы кидать, а то на работе есть инет а нема VB <_<
                    Хорошо! В будущем так и буду делать!
                    Genetik спасибо за совет! Ну, всетаки VB наверно должен быть у чела, который качает исходники с Visual Basic. Общие вопросы?
                      Цитата Super-Vadim @
                      Хорошо! В будущем так и буду делать!
                      Genetik спасибо за совет! Ну, всетаки VB наверно должен быть у чела, который качает исходники с Visual Basic. Общие вопросы?

                      На работе нам директор не разрешает ставить всякую фигню. А так у меня один из твоих 3 примеров не работает :(
                        Какой именно не пашет? :huh:
                          В папке Prozrachno лежит примерчик который походу должен делать форму прозрачной через таймер. Форма мерцает но не фурычит, т.е. её прозрачность одинакова, она мигает и весь десктоп вместе с ней :( И код я че то не понял :unsure:
                          Или смысл примера в другом?
                          Сообщение отредактировано: Genetik -
                            Цитата Genetik @
                            В папке Prozrachno лежит примерчик который походу должен делать форму прозрачной

                            ExpandedWrap disabled
                              Private Sub Form_Load()
                              gWH = Me.hwnd
                              dl = SetWindowLong(gWH, GWL_EXSTYLE, WS_EX_TRANSPARENT)
                              End Sub
                               
                              Private Sub Timer1_Timer()
                              dl = GetWindowRect(gWH, vRect)
                              vRect.Right = vRect.Right - 50
                              dl = InvalidateRect(0, vRect, 1)
                              End Sub

                            Да, проект этот мозгами особо не пахнет. :lol:
                            Когда его писал мне ещё не была известна функция SetLayeredWindowAttributes. :o
                              Цитата Super-Vadim @
                              Да, проект этот мозгами особо не пахнет. :lol:
                              Когда его писал мне ещё не была известна функция SetLayeredWindowAttributes. :o

                              Ага, зато сам вышел из проблематичной ситуации, своими силами и знаниями :)
                              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                              0 пользователей:


                              Рейтинг@Mail.ru
                              [ Script execution time: 0,0344 ]   [ 16 queries used ]   [ Generated: 23.04.24, 10:57 GMT ]