易语言是一种专为初学者设计的编程语言,它采用了贴近自然语言的语法,使得编程变得更加简单易懂。在这个“易语言透明化指定控件背景模块”中,我们主要讨论的是如何在易语言环境下实现控件背景的透明化效果。 控件透明化在图形用户界面(GUI)设计中是一个常见的需求,它可以提升应用的视觉效果和用户体验。透明化指定控件背景,通常是指让控件的某些部分或全部背景变得透明,让用户能够看到控件下方的其他元素,如窗口背景或者其他的控件。 在易语言中,实现这一功能需要对图形绘制、事件处理以及颜色处理有一定的理解。你需要掌握易语言中的“绘图”命令,这是用来在控件上绘制图形的基本工具。通过绘图命令,我们可以清除控件的背景,然后在需要的位置绘制新的图形,实现透明的效果。 透明化的核心是颜色索引技术和alpha通道的使用。在易语言中,可以使用“颜色取反”命令来处理颜色,使其变为透明。对于带有alpha通道的颜色,alpha值表示颜色的透明度,0表示完全透明,255表示完全不透明。你可以通过设置控件的背景色的alpha值来调整其透明程度。 此外,还需要了解易语言中的“事件处理”机制。例如,当控件接收到“窗口绘制”事件时,我们需要在此事件的处理函数中进行透明化的绘图操作。在事件处理函数中,首先清除控件的原有内容,然后根据需要绘制透明或半透明的图形,最后调用“结束绘制”命令完成绘图。 在“易语言透明化指定控件背景模块”源码中,可能会包含以下几个关键部分: 1. 控件初始化:设置控件的基本属性,如大小、位置等,并可能初始化透明度相关参数。 2. 事件处理函数:如“窗口绘制”事件,这里是实现透明化效果的主要代码。 3. 图形绘制:使用易语言的绘图命令,如“填充矩形”、“画线”等,结合透明颜色进行绘制。 4. 更新显示:在改变透明度或其它参数后,需要调用相应的命令刷新控件的显示。 学习并理解这个模块的源码,可以帮助你深入理解易语言的绘图和事件处理机制,同时也可以让你掌握如何在实际项目中实现控件背景的透明化效果。这将对你的易语言编程技能提升大有裨益。
1
摘要:VC/C++源码,控件相关,控件背景色   VC++改变控件的颜色,严格来说是改变输入控件的背景颜色,如上图所示,输入框的背景颜色并不是默认的白色,学会了此种控件改变背景色,你就可以掌握其它的控件是如何实现改变背景颜色的,灵活运用,不断提高VC++编程水平。
2022-11-28 21:21:36 13KB 控件背景色 VC/C++源码 控件相关
1
CListCtrl控件背景颜色网格色彩,用CListCtrl来显示数据比较方便,有时候我们需要标注某一列或某一个单元格的背景和字体颜色,或者需要改变一下行高和字体大小,CListCtrl要改变这些并不是很方便。本文将介绍如何派生一个类来改变CListCtrl及其表头的高度、字体大小、列背景颜色、单元格背景颜色、列字体颜色、单元格字体颜色。 通过改变 CListCtrl、CHeaderCtrl 高度、字体、颜色和背景,重载函数实现!
2022-03-29 22:14:25 49.83MB CListCtrl
1
原tab控件,仿360开关控件版权归原作者! VB控件背景透明代码来自:新浪 “玄雨清风”的博客 感谢以上两位源代码作者 链接:http://pan.baidu.com/s/1hrAEXqG 密码:nfhc '-----------------------以下是转自博客的控件透明源代码(可透明至父窗体或桌面)------------- '添加一个用户控件UserControl,代如下: Option Explicit '实现用户控件UserControl的"伪透明" Private Type POINTAPI X As Long Y As Long End Type Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hDC As Long) As Long Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long Private Declare Function ScreenToClient Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long Private Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hDC As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hDC As Long) As Long Private Declare Function SelectObject Lib "gdi32" (ByVal hDC As Long, ByVal hObject As Long) As Long Private Declare Function DeleteDC Lib "gdi32" (ByVal hDC As Long) As Long Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Const WM_ERASEBKGND = &H14 Private Const WM_PAINT = &HF Private Const SRCCOPY = &HCC0020 ' (DWORD) dest = source Public Event MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Public Event MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Public Event MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Private m_BK As Boolean '复制控件在父窗口的背景 Private Sub CopyParentBackground(ByVal phWnd As Long, ByVal chWnd As Long, ByVal hDestDC As Long) Dim lpRect As RECT, lpPoint As POINTAPI, nWidth As Long, nHeight As Long Dim BitMap As Long, oldBitMap As Long, hDC As Long, memDC As Long Call GetWindowRect(phWnd, lpRect) 'Call GetClientRect(phWnd, lpRect) nWidth = lpRect.Right - lpRect.Left '获取控件的宽度 nHeight = lpRect.Bottom - lpRect.Top '获取控件的高度 hDC = GetDC(0) BitMap = CreateCompatibleBitmap(hDC, nWidth, nHeight) Call ReleaseDC(0, hDC) memDC = CreateCompatibleDC(0) oldBitMap = SelectObject(memDC, BitMap) Call SendMessage(phWnd, WM_ERASEBKGND, memDC, 0) Call SendMessage(phWnd, WM_PAINT, memDC, 0) '至此memDC上已经保存了父窗口的背景内容 '用户可以调用BitBlt(...)等函数拷贝memDC的内容到子窗口的某个区域, '这样就达到了透明效果; Call GetWindowRect(chWnd, lpRect) lpPoint.X = lpRect.Left lpPoint.Y = lpRect.Top Call ScreenToClient(phWnd, lpPoint) '获取控件在父窗口的左上角位置 Call BitBlt(hDestDC, 0, 0, nWidth, nHeight, memDC, lpPoint.X, lpPoint.Y, SRCCOPY) ''''''''''''''''''''''复制背景之后,在这里可以其他事情'''''''''''''''''''''''''''' UserControl.CurrentY = 10 UserControl.Print "透明用户控件" UserControl.Refresh ' Call SelectObject(memDC, oldBitMap) Call DeleteDC(memDC) Call DeleteObject(BitMap) End Sub '复制控件在屏幕的背景 Private Sub CopyScreenBackground(ByVal phWnd As Long, ByVal chWnd As Long, ByVal hDestDC As Long) Dim lpRect As RECT, nWidth As Long, nHeight As Long, hDC As Long Call GetWindowRect(chWnd, lpRect) nWidth = lpRect.Right - lpRect.Left '获取控件的宽度 nHeight = lpRect.Bottom - lpRect.Top '获取控件的高度 ShowWindow chWnd, 0 '隐藏 DoEvents hDC = GetDC(0) Call BitBlt(hDestDC, 0, 0, nWidth, nHeight, hDC, lpRect.Left, lpRect.Top, SRCCOPY) Call ReleaseDC(0, hDC) ShowWindow chWnd, 5 '显示 ''''''''''''''''''''''复制背景之后,在这里可以其他事情'''''''''''''''''''''''''''' UserControl.CurrentY = 10 UserControl.Print "透明用户控件" UserControl.Refresh End Sub Private Sub UserControl_Initialize() UserControl.ScaleMode = vbPixels End Sub Private Sub UserControl_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) RaiseEvent MouseDown(Button, Shift, X, Y) End Sub Private Sub UserControl_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) RaiseEvent MouseMove(Button, Shift, X, Y) End Sub Private Sub UserControl_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) RaiseEvent MouseUp(Button, Shift, X, Y) CopyBKImage m_BK End Sub Private Sub UserControl_Resize() On Error Resume Next CopyBKImage m_BK End Sub Private Sub UserControl_Show() CopyBKImage m_BK End Sub Public Property Let CopyBKMode(ByVal bkm As Boolean) m_BK = bkm End Property Public Property Let BorderStyle(BStyle As Boolean) If BStyle = True Then UserControl.BorderStyle = 1 Else UserControl.BorderStyle = 0 End If End Property Public Sub Refresh() CopyBKImage m_BK UserControl.Refresh End Sub Private Sub CopyBKImage(Optional ByVal flag As Boolean = False) If flag = True Then CopyScreenBackground UserControl.Parent.hwnd, UserControl.hwnd, UserControl.hDC Else CopyParentBackground UserControl.Parent.hwnd, UserControl.hwnd, UserControl.hDC End If End Sub '''''''''''''''''''''''''''''''调用实例''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''Form1代码'''''''''''''''''''''''''''''' Option Explicit Dim LabX As Single, LabY As Single, IsMouseDownLab As Boolean Private Sub ctl1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) IsMouseDownLab = True LabX = X: LabY = Y End Sub Private Sub ctl1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If IsMouseDownLab = True Then '移动ctl1的位置 If Button = 1 Then ctl1.Move ctl1.Left + Me.ScaleX(X - LabX, 3, 3), ctl1.Top + ScaleX(Y - LabY, 3, 3) End If End Sub Private Sub ctl1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) IsMouseDownLab = False End Sub Private Sub Form_Load() Me.ScaleMode = vbPixels ctl1.CopyBKMode = True '复制控件在屏幕的背景 ctl2.CopyBKMode = False '默认值,复制控件在父窗口的背景 ctl2.BorderStyle = True '有边框 ctl1.BorderStyle = False '无边框 End Sub
2022-03-20 14:42:35 74KB 控件背景透明 控件透明 仿360开关
1
自定义了一个改变按钮颜色的事件,当然也有自己的单击事件,基于项目的要求做的,想到可能有需要的朋友就上传了
2022-03-12 08:28:38 32.59MB MFC 按钮控件 背景色
1
实现C# 透明控件的概念 解决多个窗体置顶问题 背景半透明 解决控件半透明问题
2022-02-08 22:25:47 222KB c# 透明 控件 背景
1
VC MFC CEDIT派生类 控件背景色 字体修改 并能自动控制显示行数
2021-12-24 22:14:00 2KB VC MFC CEDIT派生类 控件背景色
1
改变EditControl控件的背景颜色 在参数文本框中输入数值,如果当前值为奇数,则状态文本框背景色为绿色,文本内容为在线;否则,状态文本框背景色为红色,文本内容为离线。默认情况下,状态文本框背景色为红色,文本内容为离线。
2021-12-15 14:58:17 4.33MB EditControl 背景颜色
1
WinCE自定义控件原代码 C# VS2008开发 有以下4个控件: MyButton 自定义绘制的按钮,圆角比之前的漂亮很多 MyImageButton 图片按钮。使用bmp图片可以设置透明 MyLabel 支持背景图片的Label MyPictureControl 用来设置图片。可使bmp图片透明
1
扩展MFC编辑框控件的功能,修改编辑框背景颜色,文字格式,以及边框颜色等
2021-11-05 14:48:36 1KB MFC 背景, 边框, 颜色
1