VB6 自定义控件透明问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB6 自定义控件透明问题相关的知识,希望对你有一定的参考价值。

我做自定义控件的时候,控件里包含一个 Label 控件用做文字显示,我把控件 BackStyle 属性设置为透明,然后 Label 控件也设置为透明,问题出来了,在使用时显示在 Label 上的文字完全看不了。但如果不设置透明的话,那我在使用的时候还要设置一下背景色,很不方便。请问有什么办法能解决这个问题?
一楼完全看不懂我的问题。杯具。

只把BackStyle设置为0就可以了。就可以透明的只显示文字是。
不要把Visible也设置成F。。
参考技术A 我也有次问题,望解决后通知解决方案 参考技术B 问题解决了没有,我也有这个问题

vb中怎样设置窗体中的控件为透明

半透明也可以

参考技术A 窗体透明
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
Const HWND_TOPMOST = -1
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long

Dim lTime As Long
Dim lTime As Long
Private Const WS_EX_LAYERED = &H80000
Private Const GWL_EXSTYLE = (-20)
Private Const LWA_ALPHA = &H2
Private Const LWA_COLORKEY = &H1
Private Sub Form_Load()
Dim rtn As Long

Me.BackColor = RGB(255, 255, 255)
BorderStyler = 0
rtn = GetWindowLong(hwnd, GWL_EXSTYLE)
rtn = rtn Or WS_EX_LAYERED
SetWindowLong hwnd, GWL_EXSTYLE, rtn
SetLayeredWindowAttributes hwnd, RGB(255, 255, 255), 100, LWA_COLORKEY
SetWindowPos Me.hwnd, HWND_TOPMOST, Me.Left / Screen.TwipsPerPixelX _
, Me.Top \ Screen.TwipsPerPixelY, Me.Width \ Screen.TwipsPerPixelX, _
Me.Height \ Screen.TwipsPerPixelY, 0本回答被提问者采纳
参考技术B 只有Label控件可以设置透明,其它都不行。 参考技术C 除了特殊几个控件,其它的没办法直接设置透明或者半透明。。。

如果要实现这些效果,需要调用系统的API来实现,具体你可以百度一下

以上是关于VB6 自定义控件透明问题的主要内容,如果未能解决你的问题,请参考以下文章

用VB6.0打开自定义控件 的时候 总是出现 自定义控件.vbp 包含 无效的 'Type'键值

如何在VB6.0里为按钮控件添加自定义属性?

VB6制作的自定义ocx控件

WinForm里的用户自定义控件如何半透明(急急)

从以往子类化跟踪MouseLeave深入讨论VB6的自定义Hook类

自定义控件透明