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

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

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

Студворк — интернет-сервис помощи студентам
Кто знает, можно ли на VB5.0 сделать цвет формы прозрачным?
Заранее благодарен !!!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.10.2009, 09:32
Ответы с готовыми решениями:

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

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

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

1
VladK
28.10.2009, 21:01
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,
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.10.2009, 21:01
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru