Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: ActiveX Добавлено: 23.03.03 23:05  

Автор вопроса:  AASoft

A-A-A-A-A-A-A-A-A-A-A-A-A-.........A-A-A-A-A...

Lyudi, srochno nuzhna pomosh`

Mne nado activex contreol(sam delayu)obrezat` po konturu kartinki(naprimer, isklyuchaiya belyj cvet). tak vot kak eto delat`,

Ответить

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

Номер ответа: 1
Автор ответа:
 P



ICQ: 346632205 

Вопросов: 5
Ответов: 86
 Профиль | | #1 Добавлено: 23.03.03 23:45

Если я правильно понял, то этот пример днлает форму по рисунку, удаляя фон белого цвета:

Public Function lGetRegion(pic As PictureBox, lBackColor As Long) As Long
Dim lRgn As Long
Dim lSkinRgn As Long
Dim lStart As Long
Dim lX As Long
Dim lY As Long
Dim lHeight As Long
Dim lWidth As Long
Dim ms As Long
'StartDebug ms
'ñîçäàåì ïóñòîé ðåãèîí, ñ êîòîðîãî íà÷íåì ðàáîòó
lSkinRgn = CreateRectRgn(0, 0, 0, 0)
With pic
    'ïîäñ÷èòàåì ðàçìåðû ðèñóíêà â Pixel
    lHeight = .Height / Screen.TwipsPerPixelY
    lWidth = .Width / Screen.TwipsPerPixelX
    For lX = 0 To lHeight - 1
        lY = 0
        Do While lY < lWidth
            'èùåì íóæíûé Pixel
            Do While lY < lWidth And GetPixel(.hDC, lY, lX) = lBackColor
                lY = lY + 1
            Loop
            If lY < lWidth Then
                lStart = lY
                Do While lY < lWidth And GetPixel(.hDC, lY, lX) <> lBackColor
                    lY = lY + 1
                Loop
                If lY > lWidth Then lY = lWidth
                'íóæíûé Pixel íàéäåí, äîáàâèì åãî â ðåãèîí
                lRgn = CreateRectRgn(lStart, lX, lY, lX + 1)
                CombineRgn lSkinRgn, lSkinRgn, lRgn, RGN_OR
                'óäàëèì íåíóæíûé îáúåêò
                DeleteObject lRgn
            End If
        Loop
    Next
End With
lGetRegion = lSkinRgn
'StopDebug ms
End Function

Public Function FBP()
Dim lRgn As Long
    'çàãðóæàåì íà÷àëüíûé ðèñóíîê è âû÷èñëÿåì ðåãèîí
    Form1.Picture1.Picture = LoadPicture(App.Path & "\1.bmp")
    lRgn = lGetRegion(Form1.Picture1, vbWhite)
    'ïðèêðåïëÿåì ðåãèîí ê íàøåìó îêíó è óäàëÿåì ýòîò ðåãèîí
    SetWindowRgn Form1.hWnd, lRgn, True
    DeleteObject lRgn
    Form1.Height = Form1.Picture1.Height
    Form1.Width = Form1.Picture1.Width
End Function

Ответить

Номер ответа: 2
Автор ответа:
 AASoft



Вопросов: 86
Ответов: 920
 Профиль | | #2 Добавлено: 23.03.03 23:55

dyk vot on ne obrezaet activex

Ответить

Номер ответа: 3
Автор ответа:
 P



ICQ: 346632205 

Вопросов: 5
Ответов: 86
 Профиль | | #3 Добавлено: 24.03.03 00:08
Ну, тут уж ничем не могу помочь

Ответить

Номер ответа: 4
Автор ответа:
 AASoft



Вопросов: 86
Ответов: 920
 Профиль | | #4 Добавлено: 24.03.03 00:16
a na vbstreets rabotaet, tol`ko ono po zadannym koordinatam, a ne po cvetu

Ответить

Номер ответа: 5
Автор ответа:
 msv



Вопросов: 34
Ответов: 312
 Web-сайт: msvprogs.narod.ru
 Профиль | | #5
Добавлено: 24.03.03 07:30

Padre, очень понятны твои комментарии:

'ñîçäàåì ïóñòîé ðåãèîí, ñ êîòîðîãî íà÷íåì ðàáîòó :) 

Что за кодировка? Западноевропейская?

Ответить

Номер ответа: 6
Автор ответа:
 P



ICQ: 346632205 

Вопросов: 5
Ответов: 86
 Профиль | | #6 Добавлено: 24.03.03 20:10

Voobsche kodirovka samaya obichnaya, prosto u menya glyuki kakie to s raskladkoy - to ona perekluchaetsa, to net

Ответить

Номер ответа: 7
Автор ответа:
 P



ICQ: 346632205 

Вопросов: 5
Ответов: 86
 Профиль | | #7 Добавлено: 24.03.03 20:10

Voobsche kodirovka samaya obichnaya, prosto u menya glyuki kakie to s raskladkoy - to ona perekluchaetsa, to net

Ответить

Номер ответа: 8
Автор ответа:
 P



ICQ: 346632205 

Вопросов: 5
Ответов: 86
 Профиль | | #8 Добавлено: 24.03.03 20:13

Voobsche kodirovka samaya obichnaya, prosto u menya glyuki kakie to s raskladkoy - to ona perekluchaetsa, to net

Ответить

Страница: 1 |

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



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