PDA

View Full Version : [Q] Transparent form, bitmap...



SKM
08-10-2002, 22:03
Như các bác đã biết, các label trong VB có thể transparent (không có nền). Đây là một tính năng rất hay nhưng lại không áp dụng được cho form, bitmap... Tui muốn các bác giúp đỡ tui về vấn đề này. Ví dụ tui muốn có một bitmap hình tròn trên form thì phải làm sao? Và nhiều hình khác nữa...
Rất cám ơn các bác đã quan tâm và giúp đỡ

White_Rose
09-10-2002, 00:30
Bạn sử dụng các hàm Rgn để thiết lập lại hình dạng của Form.
ở trong Win2k/XP, có thể tạo cả hiệu ứng alpha (form trông như một cái kính mờ mờ, có thể nhìn thấy mọi thứ ở dưới).

Nguyen Thanh Binh
09-10-2002, 12:44
Bạn thử làm thế này đi (form trong suốt) :

' Trong Module :
Public Const GWL_EXSTYLE = -20
Public Const WS_EX_TRANSPARENT = &H20&
Public Const SWP_FRAMECHANGED = &H20
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
Public Const SWP_SHOWME = SWP_FRAMECHANGED Or _
SWP_NOMOVE Or SWP_NOSIZE
Public Const HWND_NOTOPMOST = -2

Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal
nIndex As Long, ByVal dwNewLong As Long) As Long

Public 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

' Cho Form :
Private Sub Form_Load()
Call SetWindowLong (Me.hwnd, GWL_EXSTYLE, WS_EX_TRANSPARENT)

Call SetWindowPos (Me.hwnd, HWND_NOTOPMOST, 0&, 0&, 0&, 0&, SWP_SHOWME)
End Sub