สวัสดีครับ วันนี้เราจะมาทำการสร้าง Wallpaper ให้กับ โปรแกรมของเราเอง สำหรับเจ้า Wallpaper นี้จะประกอบไปด้วย Structure กับ NonvisualObject ซึ่งหัวใจหลักจะอยู่ที่ตัว NonvisualObject ซึ่งจะประกอบไปด้วย Function ต่างๆหลายตัว สำหรับตัวอย่างก็สามารถ โหลด ไปศึกษา ได้ตามเคยล่ะครับ
อันดับแรกเลยเรามาดูกันที่ตัว Structure กันก่อน มีตัวแปรต่างๆที่เราจำเป็นต้องสร้างขึ้นมาดังรูปด้านล่าง
ไฟล์ภาพ/ข้อมูล ---> ถูกแสดงอยู่

เมื่อสร้างเสร็จแล้วให้เก็บลงไฟล์ที่ชื่อว่า s_bitmap จากนั้นให้ทำการสร้าง NonvisualObject และทำการ Declare functions ดังนี้
ฟังก์ชั่นแรกตั้งชื่อว่า of_setbitmap กำหนดค่าต่างๆดังรูปด้านล่าง
ไฟล์ภาพ/ข้อมูล ---> ถูกแสดงอยู่

เมื่อทำการสร้างเสร็จแล้วก็เขียนสคริปต์ลงไปดังนี้ ls_bitmap = as_filename
return 1
ต่อมาก็ทำการสร้าง ฟังก์ชั่นตัวที่สอง ตั้งชื่อว่า of_setwallpaper กำหนดรายละเอียดดังรูปด้านล่าง
ไฟล์ภาพ/ข้อมูล ---> ถูกแสดงอยู่

|
จากนั้นก็ทำการเขียนสคริปต์ลงไป ตามด้านล่าง ulong lul_Null |
ไฟล์ภาพ/ข้อมูล ---> ถูกแสดงอยู่

จากนั้นให้ทำการเขียนสคริปต์ลงไปด้านล่าง iw_window = wa_window
ib_mdi = FALSE
return 1
ต่อมาให้สร้างฟังก์ชั่นตัวที่สี่ ชื่อว่า of_setwindow เหมือนกันแต่รายละเอียดให้เป็นไปตามรูปด้านล่าง
ไฟล์ภาพ/ข้อมูล ---> ถูกแสดงอยู่

จากนั้นก็เขียนสคริปต์ด้านล่างลงไป iw_window = wa_window
i_mdi = a_mdi
ib_mdi = TRUE
return 1
ต่อมาก็ให้ทำการกำหนดตัวแปรแบบ Instance ลงไปดังนี้
boolean ib_mdi = false
mdiclient i_mdi
window iw_window
string ls_bitmap
ulong iul_hbitmap
ulong iul_hmdi
ulong iul_dcmdi
ulong iul_hDCMem
s_bitmap istr_Bitmap
boolean ib_center = FALSE
boolean ib_resize = TRUE
integer ii_TitleBarHeight = 200
จากนั้นให้ทำการสร้าง วินโดวส์ขึ้นมาใหม่ 1 อันและลงมือเขียนสคริปต์กันเลย
เริ่มจาก กำหนด instance variable ก่อนโดยกำหนดลงไปดังนี้
n_cst_wallpaper inv_wallpaperr
ที่ Activate event
This.event ue_paint()
ต่อมาที่ Close event
Destroy inv_Wallpaper
ถัดมาก็ที่ Open event
This.event post ue_postopen()
ต่อมาก็ที่ resize event
This.event ue_paint()
จากนั้นให้ทำการ declare user evnt ชื่อว่า
ue_paint
และเขียนสคริปต์ ด้านล่างลงไป
if IsValid(inv_WallPaper) then inv_WallPaper.event post ue_Paint()
และที่ ue_postopen ก็เขียนสคริปต์ด้านล่างลงไปเช่นกัน
inv_wallpaper = create n_cst_wallpaper
inv_wallpaper.of_SetWindow ( this, this.mdi_1 )
inv_wallpaper.ib_Resize = false
inv_wallpaper.ib_Center = true
inv_wallpaper.of_SetBitmap ( 'alfa.bmp' )
inv_WallPaper.of_SetWallPaper(true)
โดย 'alfa.bmp' นั้นก็คือชื่อ ของไฟล์รูปภาพที่เราจะนำมาทำเป็น wallpaper
จากนั้นก็ให้ทำการทดลองรัน Application ดูนะครับ
บทความนี้มาจาก www.soopawat.com


