• 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
Bài viết: 496
Ngày tham gia: T.Ba 04/11/2008 8:43 am
Has thanked: 6 time
Been thanked: 8 time

Hiệu ứng đẹp cho Form

Gửi bàigửi bởi dactung93 » T.Hai 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
Sửa lần cuối bởi dactung93 vào ngày T.Bảy 11/09/2010 8:40 pm với 1 lần sửa.



Hình đại diện của người dùng
Dragons
Thành viên trung thành
Thành viên trung thành
Bài viết: 270
Ngày tham gia: T.Tư 25/06/2008 10:58 am
Đến từ: Bến Tre, HCM
Has thanked: 14 time
Been thanked: 8 time

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

Gửi bàigửi bởi Dragons » T.Bảy 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 ?


Quay về “[VB] Ứng dụng - Form và Control”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách