DELPHI透明控件代码,求VB的实现方法

qifan 2005-09-01 08:46:37
下面这段代码,在DELPHI编写的控件中可以使控件背景透明,如果要在VB实现该如何编写呢?
请高手给出实现的思路或代码,谢谢!
PROCEDURE CMEraseBkgnd(var Message:TWMEraseBkgnd);Message WM_ERASEBKGND;

PROCEDURE TLwSeal.CMEraseBkgnd(var Message:TWMEraseBkgnd);
BEGIN
brush.style:=bsClear ;
Inherited;
END;
...全文
170 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qifan 2005-09-02
  • 打赏
  • 举报
回复
自己顶一下.
qifan 2005-09-01
  • 打赏
  • 举报
回复
能不能再详细点,我是初学者,谢谢!
of123 2005-09-01
  • 打赏
  • 举报
回复
所谓“透明”,实际上是将窗体背景图像在前置的控件中显示出来。

在 VB 中,可以调用 API 函数,复制窗体的局部图像。

rivate 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 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 Const SRCCOPY = &HCC0020
Private Const SRCPAINT = &HEE0086
Private Const SRCAND = &H8800C6

qifan 2005-09-01
  • 打赏
  • 举报
回复
我是想在插件WORD的控件中实现控件的透明,现在通过CallWindowProc方法和回调函数可以截获WM_ERASEBKGND事件,接下来该怎么做?我的代码是这样的:
UserControl内:
Private Sub UserControl_Initialize()
procOld = SetWindowLong(UserControl.hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub

Private Sub UserControl_Terminate()
Call SetWindowLong(UserControl.hwnd, GWL_WNDPROC, procOld)
End Sub
模块内:
'回调函数,用来截取消息
Public Function WindowProc(ByVal hwnd As Long, ByVal iMsg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
'确定接收到的是什么消息
Select Case iMsg

Case WM_PAINT

Case WM_ERASEBKGND

Case WM_DESTROY
SetBackTran wParam '这个是我自已写的方法,我想用来设置背景为透明,但是没效果?
End Select

WindowProc = CallWindowProc(procOld, hwnd, iMsg, wParam, lParam)
End Function

Public Sub SetBackTran(ByVal wParam As Long)
Dim hdc As Long
hdc = GetDC(wParam)
iBKMode = SetBkMode(hdc, TRANSPARENT)
End Sub

大家再帮忙看看, of123() 如果是用你的方法该怎么做呢?
cumtbwxj 2005-09-01
  • 打赏
  • 举报
回复
就是在Module中把API加进去

在窗体的Load()中调用

1,488

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧