ThaiPBL.com

PowerBuilder Library Thailand

อีเมล พิมพ์ PDF

การสร้าง Wallpaper

สวัสดีครับ วันนี้เราจะมาทำการสร้าง 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
window lw_frame


if ab_switch then

    of_SetWallPaper(FALSE)

    SetNull(lul_Null)
    iul_hBitmap = loadImageA(lul_Null,ls_Bitmap,0,0,0,80)

    if ( iul_hBitmap > 0 ) then
   
        GetObjectBitmap( iul_hBitmap, 28, istr_Bitmap )    
        if ib_Mdi then
            iul_hMdi = handle( i_Mdi )
        else
            iul_hMdi      = handle( iw_Window )
        end if
        iul_DcMdi     = GetDC( iul_hMdi )
        iul_hDcMem = CreateCompatibleDC(iul_DcMdi)
       
        this.Event Post ue_Paint()
       
        return 1
   
    else
   
        return -1
       
    end if

       
else

    DeleteObject ( iul_hBitmap )
    ReleaseDC(iul_DcMdi, iul_hMdi)

    return 1
   
end if
   ต่อมาก็สร้างฟังก์ชั่นตัวที่สามชื่อว่า of_setwindow กำหนดรายละเอียดลงไปดังรูป

 

 
ไฟล์ภาพ/ข้อมูล ---> ถูกแสดงอยู่




จากนั้นให้ทำการเขียนสคริปต์ลงไปด้านล่าง 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