Jumat, 23 Desember 2011

Menghilangkan Border dari Kontrol

Tidak semua Kontrol yang ada di VB menyediakan properti untuk menghilangkan border / pinggiran-nya. Karena itu perlu dibuat kode khusus untuk menghilangkan border tersebut. Berikut contoh pembuatannya :

Buat Project baru dengan sebuah Form dan sebuah Module didalamnya.
Di Module ketikkan kode berikut :

[ VB 6.0 ]
Private Declare Function CreateRectRgn Lib "gdi32.dll" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long

Public Sub NoBorder(ByVal Ctl As Control, Optional ByVal CropWidth As Integer = 2)
    Dim l As Long
    l = CreateRectRgn(CropWidth, CropWidth, (Ctl.Width / Screen.TwipsPerPixelX) - CropWidth, (Ctl.Height / Screen.TwipsPerPixelY) - CropWidth)
    SetWindowRgn Ctl.hwnd, l, False
End Sub

[ VB .NET ]
Private Declare Function CreateRectRgn Lib "gdi32.dll" (ByVal X1 As Integer, ByVal Y1 As Integer, ByVal X2 As Integer, ByVal Y2 As Integer) As Integer
Private Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Integer, ByVal hRgn As Integer, ByVal bRedraw As Boolean) As Integer

Public Sub NoBorder(ByVal Ctl As Control, Optional ByVal CropWidth As Integer = 1)
    Dim i As Integer
    i = CreateRectRgn(CropWidth, CropWidth, Ctl.Width - CropWidth, Ctl.Height - CropWidth)
    SetWindowRgn(Ctl.Handle, i, False)
End Sub


Sekarang untuk percobaanya buat beberapa Kontrol ke dalam Form. Lalu ketikkan kode sesuai dengan nama Kontrol-nya di bagian 'Form_Load' dari Form seperti ini :
NoBorder TextBox1 'nama kontolnya adlh TextBox1

Label: , , ,

0 Komentar:

Posting Komentar

Pengunjung yang baik selalu meninggalkan jejak berupa komentar. :)

Berlangganan Posting Komentar [Atom]

<< Beranda