Dalam pemprograman Visual Foxpro biasanya ketika membuat formnya terpaku pada bentuk form standar (kotak), nah disini akan di jabarkan sedikit tentang bagaimana cara memanipulasi bentuk Form biar tampilannya berbeda dari biasanya…dan bisa lebih menrik…. bisa bentuk Lingkaran (bulat), kotak Melengkung.
Berikut ini adalah cara yang digunakan, untuk melakukan manipulasi bentuk form. Bentuk form yang normalnya kotak dengan memanfaatkan fungsi – fungsi WinAPI maka bentuknya bisa diubah sesuai dengan yang teman – teman inginkan. Bila ingin mencoba, silahkan coba ilustrasi dibawah ini (Tambahkan Syntak Di INIT Form dan silahkan otak – atik angka yg berwarna merah untuk merubah ukuran):
Untuk membuat form berbentuk Bulat
Declare Long CreateEllipticRgn IN WIN32API Long X1, Long Y1, ;
Long X2, Long Y2
Declare Long SetWindowRgn IN WIN32API Long hWnd, Long hRgn, ;
String bRedraw
SetWindowRgn(thisform.hwnd, ;
CreateEllipticRgn(1,1,100,100), “True”)Bentuk Kotak

Declare Long CreateRectRgn IN WIN32API Long X1, Long Y1, ;
 Long X2, Long Y2
Declare Long SetWindowRgn IN WIN32API Long hWnd, Long hRgn, ;
 String bRedraw
SetWindowRgn(thisform.hwnd, ;
 CreateRectRgn(1,1,100,100), “True”)

Bentuk Kotak dengan Ujung Melengkung

Declare Long CreateRoundRectRgn IN WIN32API Long X1, Long Y1, ;
 Long X2, Long Y2, Long X3, Long Y3
Declare Long SetWindowRgn IN WIN32API Long hWnd, Long hRgn, ;
 String bRedraw
SetWindowRgn(thisform.hwnd, ;
 CreateRoundRectRgn(1,1,100,100,50,50), “True”)

Di Visual Foxpro bahkan tidak hanya form yang bisa dirubah bentuknya, jendela editor Visual Foxpro pun bisa diperlakukan sama, silahkan coba aja copas dan jalankan syntak diatas di Command Window dan ubah bagian syntak thisform.hwnd menjadi _vfp.hwnd. sedangkan bila ingin membuat form yang bentuknya sesuai selera (tidak hanya bulat), bisa pake skenario berikut ini :

    1. Siapkan gambar dengan bentuk tertentu, yang akan dijadikan sebagai bentuk form
    2. Tambahkan kontrol image ke form, dan arahkan properti picture  ke gambar tersebut
    3. Ubah property BackColor milik form ke warna yang jauh berbeda dengan warna gambar misal warna merah (255.0.0)
  • Tambahkan syntak di bawah ini di INIT form
DECLARE INTEGER SetLayeredWindowAttributes IN WIN32API ;
 INTEGER HWND,  INTEGER crKey, ;
 INTEGER bAlpha, INTEGER dwFlags
DECLARE INTEGER SetWindowLong IN user32.DLL INTEGER hWnd, ;
 INTEGER nIndex, INTEGER dwNewLong DECLARE INTEGER GetWindowLong IN user32.DLL INTEGER hWnd, INTEGER nIndex lnFlags = GetWindowLong(thisform.hwnd, -20)
lnFlags = BITOR(lnFlags, 0x00080000)         SetWindowLong(thisform.hwnd, -20, lnFlags)   SetLayeredWindowAttributes(thisform.hwnd, ;
 RGB(255,0,0), 0, 1)

Pastikan angka 255,0,0 di syntak dan di BackColor adalah sama 5.

  • Tinggal atur property TitleBar di form menjadi 0 – off, property BordeyStyle menjadi 0 – No Border dan jangan lupa jika ingin property ShowWindow tetap bernilai 0 / 1 maka ubah property Desktop menjadi .T., atau kalau tidak ubah saja property ShowWindow ke 2.

Nah sekian Tips dalam Memanipulasi bentuk form dengan memanfaatkan WinAPI yang ada dalam Foxpro…

Semoga Postingan ini  Bisa Bermanfaat…
         

image_pdfCetak PDFimage_print

admin