Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 | 3 |

 

  Вопрос: Окно в форме/виде элементов управления на нем Добавлено: 03.11.06 19:35  

Автор вопроса:  -АлександР- | Web-сайт: sham.clan.su

Ответить

  Ответы Всего ответов: 32  

Номер ответа: 16
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #16 Добавлено: 04.11.06 20:42
Готов поспорить с Sacred Phoenix
ну дык ж я в посте №5 написал, что либо всякие API *Rgn() :)

Ответить

Номер ответа: 17
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #17
Добавлено: 04.11.06 20:44
Хм. Что-то здесь есть...
Но... Постой, зачем мне делать форму прозрачной? Это ничего не даст. надо чтобы на месте этого цвета не было формы вообще.
я УЖЕ задумывал, чтобы скопироваь контур контролов в рисунок, а потом по этому рисунку сделать контур формы.
НО Я НЕ ЗНАЮ, КАК
Далее апишками опрозрачнивай форму с помощью получившейся картинки (непомню какими апишками :), но есть какая-то, что заданный цвет превращяет в прозрачный).
До этого момента у меня все гоово, кто бы апишку подсказал для того, чтобы форма приняла вид рисунка

Ответить

Номер ответа: 18
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #18
Добавлено: 04.11.06 20:47
ну дык ж я в посте №5 написал, что либо всякие API *Rgn() :)
Я просто хотел уточнить, что окно неправильной формы можно сделать только ими ;)

Ответить

Номер ответа: 19
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #19
Добавлено: 05.11.06 00:20
Короче, а кто-нибудь знает, как работать с begin/endpath ?

Ответить

Номер ответа: 20
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #20 Добавлено: 05.11.06 18:13
-АлександР-, ты так и не поняль мысль Sacred Phoenix'a...

Но... Постой, зачем мне делать форму прозрачной? Это ничего не даст. надо чтобы на месте этого цвета не было формы вообще.


Это и есть прозрачность, один из режимов прозрачности, если можно так выразиться...


Private Const GWL_EXSTYLE = (-20)
Private Const CLR_Black = &H0&

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
    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, CLR_Black, 0, LWA_COLORKEY

Ответить

Номер ответа: 21
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #21
Добавлено: 05.11.06 18:58
Готов поспорить с Sacred Phoenix
Значит проспорил я (((:::))) *суперсайлик

Эх, Хакер, что бы я без тебя делал?
Да и все мы?
Благодарю

Ответить

Номер ответа: 22
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #22
Добавлено: 05.11.06 19:15
Вот только не пойму: при LWA_COLORKEY он только черный цвет опрозранивать может?
А если LWA_ALPHA, то на цвет вообще плевать?

Ответить

Номер ответа: 23
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #23 Добавлено: 05.11.06 21:03
Ну то как бы все окно, а то только конкретный цвет в этом окне...

Ответить

Номер ответа: 24
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #24 Добавлено: 05.11.06 21:40
Значит проспорил я
:P С тебя пиво :)

Ответить

Номер ответа: 25
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #25
Добавлено: 06.11.06 15:05
:P С тебя пиво :)
Куда ж я денусь ? :)

а то только конкретный цвет в этом окне...
Почему-то только черный получается

Ответить

Номер ответа: 26
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #26
Добавлено: 06.11.06 15:11
Например форма у мня цвета button face, я пишу
    SetLayeredWindowAttributes Me.hWnd, Me.BackColor, 0, LWA_COLORKEY

И никакого эффекта (?)

Ответить

Номер ответа: 27
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #27
Добавлено: 06.11.06 15:17
А попробуй форму белую зделат

Ответить

Номер ответа: 28
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #28 Добавлено: 06.11.06 19:22
А попробуй форму белую зделат
Лучше не юзать стандартные цвета типа черного, белого и т.д. В данном случае белый юзается в заголовке формы (надпись), а насколько я помню, на нее прозрачность тоже распространица

Ответить

Номер ответа: 29
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #29
Добавлено: 06.11.06 21:48
А попробуй форму белую зделат
Пробовал, эффект тотже
Все дело в константах CLR_WHITE, clr_black и т д... clr_bright ещё какой-то :(
Я никак не могу понять CLR и RGB - разные что ли?

Ответить

Номер ответа: 30
Автор ответа:
 Bombardier



ICQ: 42305746 

Вопросов: 2
Ответов: 67
 Web-сайт: alexander.tsioka.ru
 Профиль | | #30
Добавлено: 07.11.06 16:29
даже не надо опрозрачнивать, вот исходник который создает регион по картинке...:
Public Function lGetRegion(pic As PictureBox, lBackColor As Long) As Long
Dim lRgn As Long                'temp region handle
Dim lSkinRgn As Long            'skinned region handle
Dim lStart As Long              'Start position for scan
Dim lX As Long                  'pixel coordinate X
Dim lY As Long                  'pixel coordinate Y
Dim lHeight As Long             'image size (height)
Dim lWidth As Long              'image size (width)
    'create empty region to start
    lSkinRgn = CreateRectRgn(0, 0, 0, 0)
    'calculate image size in Pixels
    lHeight = pic.Height / Screen.TwipsPerPixelY
    lWidth = pic.Width / Screen.TwipsPerPixelX
    For lX = 0 To lHeight - 1
        lY = 0
        Do While lY < lWidth
            'search Pixel colored with BacgroundColor
            Do While lY < lWidth And GetPixel(pic.hDC, lY, lX) = lBackColor
                lY = lY + 1
            Loop
            If lY < lWidth Then
                lStart = lY
                Do While lY < lWidth And GetPixel(pic.hDC, lY, lX) <> lBackColor
                    lY = lY + 1
                Loop
                If lY > lWidth Then lY = lWidth
                'we found Pixel, add them to the region
                lRgn = CreateRectRgn(lStart, lX, lY, lX + 1)
                CombineRgn lSkinRgn, lSkinRgn, lRgn, RGN_OR
                'clear temp region object
                ;DeleteObject lRgn
            End If
        Loop
    Next
    lGetRegion = lSkinRgn
End Function

Ответить

Страница: 1 | 2 | 3 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам