Transparent Forms ?!

A

Anonymous

#1
Selam arkadaslar,

ben bir resim design edip formun backgroundu olarak o resmi koymak istiyorum, fakat formun geri kalani transparent olmasi gerek ki sanki resim formmus gibi gozuksun..

formu nasil transparent yapabilecegim hakkinda bilgisi olan varmi??
simdiden tesekkurler!
 
A

Anonymous

#2
Option Explicit
Public Declare Function BitBlt Lib "gdi32" (ByVal hDCDest As Long, _
ByVal XDest As Long, ByVal YDest As Long, _
ByVal nWidth As Long, ByVal nHeight As Long, _
ByVal hDCSrc As Long, ByVal XSrc As Long, _
ByVal YSrc As Long, ByVal dwRop As Long ) As Long

'alt çizgiler devam anlamında sanırım biliyorsundur

Public Const SRCCOPY = &HCC0020
Public Declare Function GetDesktopWindow Lib "user32" () As Long
Public Declare Function GetWindowDC Lib "user32" ( ByVal hwnd As Long ) As Long
Public Declare Function ReleaseDC Lib "user32" ( ByVal hwnd As Long, _
ByVal hdc As Long ) As Long
Dim hwnddesk As Long
Dim hdcdesk As Long

Public Sub makeTransparent(FormToBePainted As Form)
FormToBePainted.AutoRedraw = True
hwnddesk = GetDesktopWindow()
hdcdesk = GetWindowDC(hwnddesk)
Call BitBlt(FormToBePainted.hdc, 0, 0, FormToBePainted.Width / Screen.TwipsPerPixelX, _
FormToBePainted.Height / Screen.TwipsPerPixelY, hdcdesk, _
FormToBePainted.Left / Screen.TwipsPerPixelX, _
FormToBePainted.Top / Screen.TwipsPerPixelY, SRCCOPY)
Call ReleaseDC(hwnddesk, hdcdesk)
End Sub

Private Sub Form_Load()
MakeTransparent Me
End Sub


çalışır sanırım
kolay gelsin
 
A

Anonymous

#3
tesekkur ederim arkadasim ama bu kod vb.net'te calismadi.. bazi nesnelerin bazi attributes'lari farkli yada hic yok.. mesela

FormToBePainted.hdc
formtobepainted'in hdc diye bi nesnesi yok diyor, yukarda declare etmis olmana ragmen.. sanirim vb.Net deki degisikliklerden olacak. cikamadim icinden.. .net'e gore bi kod varmi??
 
A

Anonymous

#4
su andaki sistemim xp 'yi birde onun uzerine .net i
kaldıracak durumda değil yani .net hakkında hic bir
fikrim yok ve bir kac yıl daha da edinmeyi
dusunmuyorum

kolay gelsin
 
A

Anonymous

#7
sorumun cevabini buldum arkadaslar yinede sagolun..

.net'de formun constructor kismina su kodu ekliyorsunuz, formun transparency key'ini "control" yapiyorsunuz, ve tabiiki adobe'da arkasi transparent olan bir resiim hazirlayip onu formun backgroundimage;i olarak koyuyorsunuz bu kadar basitmis

SetStyle(ControlStyles.SupportsTransparentBackColor, True)
BackColor = System.Drawing.Color.FromArgb(0, System.Drawing.Color.Transparent)
 

Bu konuyu okuyanlar (Üyeler: 1, Misafirler: 0)

Üst