Penggunaan WinAPI untuk memanipulasi bentuk form

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):

Bentuk 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)
  4. Tambahkan syntak di bawah ini di INIT form  
  5. 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.
  6. 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.

13 Response to "Penggunaan WinAPI untuk memanipulasi bentuk form"

yusuf sukandar mengatakan...

pertamax bro....

gustira mengatakan...

Bagus infonya, mgkn bisa diperbanyak lagi bahas ttg win32 api

Budi mengatakan...

Seneng dengan Web ini... sepertinya akan banyak membantu saya

yusuf sukandar mengatakan...

thank dah mampir bro

by mengatakan...

mantabs gan

Run A Way mengatakan...

sudah ada yang buat aplikasi cloud dengan VFP, share dong jika sudah ada yang create...? Thanks

Admin mengatakan...

wah menarik sekali mas, kalau boleh saya minta tutorial untuk membuat aplikasi database siswa, sebelumnya terimakasih.

jlw ansori mengatakan...

Siip Bang Development trs Bang kalau VFP9-Xampp-MySql -->LAN sdh OK Bang zaman skrg tapi cari yg ke net msh kesulitan Bang Tutorialnya. Tolong Bang kalau ada Info Bang

bachtiar libra mengatakan...

siip kren gank!! aq ada sedikit msalah nich gank !! aq mau nulis 936,56 ton pada text di form dan tesk tersebut bertype numbrik setiap kali nulis pas tekan koma kok ga bisa ya
dan nntinya isi dari text ini mw di jadikan zak

misal: thisform.text2.value= thisform.text1.value*20

hanya aja kendalanya gmna cra nulis biar angaka koma isa di munculin di text tersebut gank ??
tank be4 nich gank!!! klw bisa send di email aja gank bantuannya "bachtiarlibra@gmail.com

Wahyu Jaelani mengatakan...

para master semuanya, mafz mo nanya soalnya newbie bgt nich, kalo mau insert master data di excel ke table foxpro gmn yach ? makasi sebelumnya.

sukiman binery mengatakan...

Terus terang saya baru coba mengikuti block ini, sebelumnya saya pikir block ini bagi programer yang sdh canggih saja. Ternyata bisa juga bagi pemula atau bagi siapa saja yang pingin belajar dan mempelajari pemrogrman dg vfp. Kebetulan di FOXPRO MANIA, selain belajar foxpro saya sekaligus mau belajar juga MySQL nya, biar bisa nantinya bikin aplikasi multy user. bagi FOXPPRO MANIA yang mau sumbangkan sarannya untuk niat saya tersebut, diucapkan banyak terima kasih. Salam FOXPRO MANIA.

Ardy Vagabond mengatakan...

Hallo...!
Apakah situs ini masih aktif? Kalau iya, minta info donk cara bikin file .dll di foxpro, apa gunanya file .dll di foxpro, dan cara manggilnya gimana!
thx b4...

Anjas Taher mengatakan...

para master mau tanya gimana cara bikin pilihan bertingkat

Posting Komentar

Bila komentar tidak tampil, silahkan ke page Welcome dan beritahukan melalui email yang tertera disana, kemungkinan komentar anda dianggap sebagai spam, biar nanti admin yang akan merubahnya, Terima kasih.

Related Posts Plugin for WordPress, Blogger...