• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Hiệu ứng đẹp cho Form

Các thủ thuật liên quan đến việc xử lý ứng dụng, biểu mẫu và control
dactung93
Thành viên tâm huyết
Thành viên tâm huyết
Posts: 496
Joined: Tue 04/11/2008 8:43 am
Has thanked: 6 times
Been thanked: 8 times

Hiệu ứng đẹp cho Form

Postby dactung93 » Mon 06/09/2010 10:07 am

Thủ thuật: Hiệu ứng bóng mờ cho From
Tác giả: dactung93
Mô tả: Khi di chuột ra khỏi from thì from sẽ mờ đi và khi di chuột vào thì from lại sáng lên


Hôm qua search mấy thứ trên vblib, tự dưng nghĩ thế nào mình lại viết đoạn code dưới đây.
Tạo hiệu ứng cho form đơn trông cũng đẹp mắt phết
Sử dụng
- Hiệu ứng mờ from khi Unload/load
- Tọa độ chuột
- Đồng hồ theo chuột
=> Ẩn/Hiện from khi chuột ra hoặc dê vào from. Trông cũng khá là đẹp mắt
Bạn add thêm timer và mấy cái label để theo dõi nha

  1. Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
  2. Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  3. Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
  4. Private Const GWL_EXSTYLE = (-20)
  5. Private Const LWA_ALPHA = &H2
  6. Private Const WS_EX_LAYERED = &H80000
  7.  
  8. Dim m_lAlpha
  9.  
  10. Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
  11. Private Type POINTAPI
  12.         x As Long
  13.         y As Long
  14. End Type
  15. Dim pos As POINTAPI
  16. Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
  17.  
  18.  
  19. Private Sub Form_Load()
  20.     Dim lStyle As Long
  21.     lStyle = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
  22.     lStyle = lStyle Or WS_EX_LAYERED
  23.     SetWindowLong Me.hWnd, GWL_EXSTYLE, lStyle
  24.     SetLayeredWindowAttributes Me.hWnd, 0, 0, LWA_ALPHA
  25. End Sub
  26.  
  27.  
  28.  
  29. Private Sub Timer1_Timer()
  30. GetCursorPos pos
  31.  'move pos.x * 15 + 10 * 15, pos.y * 15 + 20 * 15
  32. Text1.Text = pos.x * 15 + 10 * 15 - 20
  33. Text2.Text = pos.y * 15 + 20 * 15 - 20
  34. Text3.Text = Me.Left
  35. Text4.Text = Me.Top
  36.  
  37. If pos.x * 15 + 10 * 15 - 100 > Me.Left And pos.x * 15 + 10 * 15 - 100 < Me.Left + Me.Width Then
  38.     Text5.Text = "X in"
  39. Else
  40.     Text5.Text = "X out"
  41. End If
  42.  
  43. If pos.y * 15 + 20 * 15 - 100 > Me.Top And pos.y * 15 + 20 * 15 - 100 < Me.Top + Me.Height Then
  44.     Text6.Text = "Y in"
  45. Else
  46.     Text6.Text = "Y out"
  47. End If
  48.  
  49. If pos.x * 15 + 10 * 15 - 100 > Me.Left And pos.x * 15 + 10 * 15 - 100 < Me.Left + Me.Width And pos.y * 15 + 20 * 15 - 100 > Me.Top And pos.y * 15 + 20 * 15 - 100 < Me.Top + Me.Height Then
  50.     Timer2.Enabled = True
  51.     Timer3.Enabled = False
  52. Else
  53.     Timer2.Enabled = False
  54.     Timer3.Enabled = True
  55. End If
  56. End Sub
  57.  
  58. Private Sub Timer2_Timer()
  59.     m_lAlpha = m_lAlpha + 15
  60.     If (m_lAlpha > 255) Then
  61.         m_lAlpha = 255
  62.         Timer1.Enabled = True
  63.         Timer2.Enabled = False
  64.     Else
  65.         SetLayeredWindowAttributes Me.hWnd, 0, m_lAlpha, LWA_ALPHA
  66.     End If
  67. End Sub
  68.  
  69. Private Sub Timer3_Timer()
  70.     m_lAlpha = m_lAlpha - 15
  71.     If (m_lAlpha < 155) Then
  72.         m_lAlpha = 155
  73.     Else
  74.         SetLayeredWindowAttributes Me.hWnd, 0, m_lAlpha, LWA_ALPHA
  75.     End If
  76. End Sub
Last edited by dactung93 on Sat 11/09/2010 8:40 pm, edited 1 time in total.



User avatar
Dragons
Thành viên trung thành
Thành viên trung thành
Posts: 271
Joined: Wed 25/06/2008 10:58 am
Location: Bến Tre, HCM
Has thanked: 14 times
Been thanked: 8 times

Re: Hiệu ứng đẹp cho Form

Postby Dragons » Sat 23/11/2013 10:39 am

Câu trả lời tại đây:
http://caulacbovb.com/forum/viewtopic.php?f=7&p=31230#p31230
Tại form load mình dùng code này:
  1.   Me.BackColor = Color.Red
  2.         Me.Opacity = 0.5
  3.         Me.TopMost = True


Nhưng mình vẫn chưa làm được như yêu cầu ?
Có bạn nào giúp mình làm được như yêu cẩu của mục này trong VB.net không ?


Return to “[VB] Ứng dụng - Form và Control”

Who is online

Users browsing this forum: No registered users and 2 guests