Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 03.09.2009
Сообщений: 7
1

Как сделать форму прозрачной

26.10.2009, 09:32. Показов 1367. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Кто знает, можно ли на VB5.0 сделать цвет формы прозрачным?
Заранее благодарен !!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.10.2009, 09:32
Ответы с готовыми решениями:

Как сделать форму прозрачной?
Подскажите неумному, как сделать форму прозрачной (например для логотипа...)

Как сделать форму прозрачной ?
fd

Как сделать форму UserControl`a прозрачной?
При создании своего ActiveX Control`a есть необходимость сделать его форму прозрачной, чтобы видны...

Как сделать форму dockable?
Как сделать форму dockable? В приложениях SDI и MDI.

1
VladK
28.10.2009, 21:01 2
1. Внутри Moдуля:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
Option Explicit
 
Declare Function GetWindowRect Lib 'user32' (ByVal hwnd As Long, lpRect As RECT) As Long
Declare Function GetClientRect Lib 'user32' (ByVal hwnd As Long, lpRect As RECT) As Long
Declare Function CombineRgn Lib 'gdi32' (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
Declare Function CreateRectRgn Lib 'gdi32' _
(ByVal X1 As Long, ByVal Y1 As Long, _
ByVal X2 As Long, ByVal Y2 As Long) As Long
 
Declare Function ScreenToClient Lib 'user32' _
(ByVal hwnd As Long, lpPoint As POINTAPI) As Long
 
Declare Function SetWindowRgn Lib 'user32' _
(ByVal hwnd As Long, ByVal hRgn As Long, _
ByVal bRedraw As Boolean) As Long
 
Public Const RGN_AND = 1
Public Const RGN_COPY = 5
Public Const RGN_DIFF = 4
Public Const RGN_OR = 2
Public Const RGN_XOR = 3
 
Type POINTAPI
    X As Long
    Y As Long
End Type
 
Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type
 
Public Sub MakeTransparent(frm As Form)
    
    Dim rctClient As RECT, rctFrame As RECT
    Dim hClient As Long, hFrame As Long
 
    '// Grab client area and frame area
    GetWindowRect frm.hwnd, rctFrame
    GetClientRect frm.hwnd, rctClient
 
    '// Convert client coordinates to screen coordinates
    Dim lpTL As POINTAPI, lpBR As POINTAPI
 
    lpTL.X = rctFrame.Left
    lpTL.Y = rctFrame.Top
    lpBR.X = rctFrame.Right
    lpBR.Y = rctFrame.Bottom
    
    ScreenToClient frm.hwnd, lpTL
    ScreenToClient frm.hwnd, lpBR
 
    With rctFrame
        .Left = lpTL.X
        .Top = lpTL.Y
        .Right = lpBR.X
        .Bottom = lpBR.Y
    End With
    
    With rctClient
        .Left = Abs(rctFrame.Left)
        .Top = Abs(rctFrame.Top)
        .Right = rctClient.Right + Abs(rctFrame.Left)
        .Bottom = rctClient.Bottom + Abs(rctFrame.Top)
    End With
    
    With rctFrame
        .Right = rctFrame.Right + Abs(rctFrame.Left)
        .Bottom = rctFrame.Bottom + Abs(rctFrame.Top)
        .Top = 0
        .Left = 0
    End With
    
    '// Convert RECT structures to region handles
    hClient = CreateRectRgn(rctClient.Left, rctClient.Top, rctClient.Right, rctClient.Bottom)
    hFrame = CreateRectRgn(rctFrame.Left, rctFrame.Top, rctFrame.Right, rctFrame.Bottom)
 
    '// Create the new 'Transparent' region
    CombineRgn hFrame, hClient, hFrame, RGN_XOR
 
    '// Combine the regions of the controls
    '// on the form with the 'transparent' region.
    Dim C As Control, rctControl As RECT, hControl As Long
    For Each C In frm
        On Error Resume Next
       '// Get the control's area
        GetWindowRect C.hwnd, rctControl
        
        '// Convert to client coordinates
        lpTL.X = rctControl.Left
        lpTL.Y = rctControl.Top
        lpBR.X = rctControl.Right
        lpBR.Y = rctControl.Bottom
        
        ScreenToClient frm.hwnd, lpTL
        ScreenToClient frm.hwnd, lpBR
        
        With rctControl
            .Left = lpTL.X + rctClient.Left
            .Top = lpTL.Y + rctClient.Top
            .Right = lpBR.X + rctClient.Left
            .Bottom = lpBR.Y + rctClient.Top
        End With
 
        hControl = CreateRectRgn(rctControl.Left, rctControl.Top, rctControl.Right, rctControl.Bottom)
        CombineRgn hFrame, hControl, hFrame, RGN_OR
    Next C
 
    '// Now lock the window's area to this created region
    SetWindowRgn frm.hwnd, hFrame,
28.10.2009, 21:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.10.2009, 21:01
Помогаю со студенческими работами здесь

Как сделать форму always on top?
Спасибо!

Как сделать форму главной
Допустим я создал проект написал на 1 форме кодик и решил сделать прогу на 3 формы.Сделал 2...

Как сделать форму с 'вкладками'?
Подскажите, пожалуйста, как сделать форму с 'вкладками' - так, как это сделано в окошках свойств...

Как сделать форму в Excel в которую нужно вывести данные из Sheet-а, а затем пустить эту форму на принтер?
Как сделать форму в Excel в которую нужно вывести данные из Sheet-а, а затем пустить эту форму на...

Как сделать форму с уравнением
Вот то что сделал сам

Как сделать форму прозрачной?
Как сделать форму прозрачной в вижуал бейсике 2010?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru