Membuat Kontrol ActiveX di Visual Basic 6

Pengembangan teknik selanjutnya dari teknik di atas adalah membuat kontrol yang menyebabkan form kita berbentuk seperti tampilan berikut ini:

Kontrol form berbentuk bumi dan bulan

Untuk membuatnya, kita memerlukan satu lagi fungsi API, yaitu CombineRgn yang berfungsi menggabungkan region-region yangtelah terbentuk sebelumnya berdasarkan pola tertentu. Aturanpenggunaannya adalah sebagai berikut:
CombineRgn(h, r1, r2, pola) (italic)
Keterangan:
h = region hasil penggabungan yang harus sudah ada sebelumnya (bisa r1 atau r2)
r1 = region pertama untuk digabungkan
r2 = region kedua untuk digabungkan
pola = mode yang digunakan dalam operasi penggabungan dan merupakan suatu konstanta, yaitu:

gbr 2

Untuk lebih jelasnya, lihat ilustrasi berikut ini:

gbr 3

Gambar Macam-macam pola proses dalam fungsi CombineRgn

Kembali ke kontrol ActiveX kita, yaitu kontrol form bumi dan bulan. Cara membuatnya sama dengan yang sebelumnya, yaitu kontrol form berbentuk elips, hanya saja Property yang baru dibentuk bernama bulan bukan elips dan di bagian General, kode yang ditambahkan adalah:

Private Declare Function CombineRgn Lib “gdi32″ (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long

Prosedur Atur-nya berisi kode sebagai berikut:

Sub Atur()
Dim tengah As Long
Dim pinggir1 As Long
Dim pinggir2 As Long
Dim sat As Long
Dim satb As Long
Parent.ScaleMode = 3
If m_bulan = True Then
bumi = CreateEllipticRgn(80, 100, 260, 280)
r1 = CreateEllipticRgn(80, 20, 160, 100)
r2 = CreateEllipticRgn(50, 40, 130, 120)
sat = CombineRgn(r1, r1, r2, 4)
satb = CombineRgn(bumi, bumi, r1, 2)
Else
Parent.BorderStyle = 2
bumi = CreateRectRgn(0, 0, Parent.Width, Parent.Height)
End If
SetWindowRgn Parent.hWnd, bumi, True
DeleteObject (bumi)
End sub

Keterangan:
Variabel bumi berguna untuk membentuk object bumi, sedangkan variabel r1 berguna untuk membentuk object bulan berbentuk bulat. Varibel r2 akan berfungsi membentuk object berbentuk bulat pula untuk menghilangkan sebagian region (daerah) object r1 dengan pola Rgn_Diff sehingga object r1 akan berbentuk sabit dan hasil perpotongannya dimasukkan kembali ke dalam object r1. Region r1 tersebut kemudian digabungkan dengan region bumi menggunakan pola Rgn_Or.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: