กำหนดพื้นหลังของฟอร์มให้โปร่งใส
กระทู้เก่าบอร์ด อ.Yeadram

 2,291   6
URL.หัวข้อ / URL
กำหนดพื้นหลังของฟอร์มให้โปร่งใส

ต้องการออกแบบฟอร์ม ทำให้พื้นหลังของฟอร์มมีลักษณะโปร่งใส ได้หรือเปล่าครับ

6 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R04703
ผมจำไม่ได้ว่า โค้ดของคนไทยมีลองนำมาใช้กันบ้างหรือยัง แต่จำได้คร่าวๆ ว่า โค้ดจากต่างประเทศมีให้โหลดมาศึกษาฟรีๆ อยู่เยอะหลายที่

ผมจึงลองไปที่หน้าแรกของเว็บบอร์ด
ที่ปุ่ม Google Custom search ผมลองค้นด้วยคำว่า "transparent form access"
เห็นมีผลลัพธ์การค้น มาหลายลิงค์พอสมควรครับ ลองเข้าไปหาดูเองนะครับ ผมคงไม่ได้เข้าไปดูให้หรอกครับ
2 @R04705
01.'Module
02.Option Explicit
03.
04.Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
05.Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
06.Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
07.
08.Private Const GWL_EXSTYLE = (-20)
09.Private Const LWA_ALPHA = &H2
10.Private Const WS_EX_LAYERED = &H80000
11.
12.Public Function MakeTransparent(ByVal hWnd As Long, Perc As Integer) As Long
13.Dim Msg As Long
14.On Error Resume Next
15.If Perc < 0 Or Perc > 255 Then
16.MakeTransparent = 1
17.Else
18.Msg = GetWindowLong(hWnd, GWL_EXSTYLE)
19.Msg = Msg Or WS_EX_LAYERED
20.SetWindowLong hWnd, GWL_EXSTYLE, Msg
21.SetLayeredWindowAttributes hWnd, 0, Perc, LWA_ALPHA
22.MakeTransparent = 0
23.End If
24.If Err Then
25.MakeTransparent = 2
26.End If
27.End Function
28.
29.'Form
30.Private Sub Command1_Click()
31.MakeTransparent Me.hWnd, 200
32.End Sub

ผมได้ code มา แต่ไม่รู้ว่าจะต้องทำอย่างไรต่อครับ ขอบคุณครับ
3 @R04709
1 นำบรรทัดที่ 2 - 27 ไปไว้ที่ Module (ไม่ต้องใส่ตัวเลขข้างหน้านะครับ)
2 นำบรรทัดที่ 30 - 32 ไปไว้ที่ ฟอร์ม โดยสร้าง commamnd button ชื่อ Command1 แล้ว ไปที่ property ของ Command1 click ที่ tab event
หา on click สร้าง event procedure โดย click ที่ ที่ว่างทางขวาของ on click
จากนัน้ click ที่ ...จะ link ไปที่เหตุการณ์ที่ copy มาที่ form
3 สร้าง ฟอร์ม โดย ตั้งค่าที่ property ของ Form ดังนี้
      3.1 POPUP เป็น YES      
      3.2 border style เป็น None
      3.3 ทดลองตั้งค่า สีฟื้นหลัง เช่น สีดำ (0 ใน access ต่ำกว่า 2007)
             (#000000 ใน access 2007) จะได้เห็นชัด ๆ
      3.4 ตั้งค่า Record selector เป็น NO จะสวยงามกว่า
4 @R04710
ขอเข้ามาเกี่ยวเอาความรู้ด้วยคนนะคะ
ทดลองใช้แล้วได้ผลตามที่อาจารย์ ditasilk กรุณาแนะนำเลยค่ะ
5 @R04711
ได้แล้วครับ สวยงามมาก ขอบคุณครับ
6 @R04714
ขอรบกวนถามตามลิงค์นี้หน่อยครับ พอดีเห็ยทำเก็บกับโปร่งใส
http://blogs.msdn.com/access/archive/2008/04/28/modal-dialogs-with-transparent-backgrounds.aspx

เห็ยว่าต้องทำ
SetLayeredWindowAttributes and SetWindowLong

เลยไม่ทราบว่า มันทำได้กับ Access2007 หรือเปล่าครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.6497s