delphi 控件背景透明代码】的更多相关文章

procedure DrawParentBackground(Control: TControl; DC: HDC; R: PRect = nil; bDrawErasebkgnd: Boolean = False); var SaveIndex: Integer; MemDC: HDC; MemBmp: HBITMAP; begin if R <> nil then begin MemDC := CreateCompatibleDC(DC); MemBmp := CreateCompatib…
/*添加背景图片*/ BOOL CTOOLDlg::OnEraseBkgnd(CDC* pDC) { // TODO: 在此添加消息处理程序代码和/或调用默认值 CDialog::OnEraseBkgnd(pDC); HBITMAP m_hBitmap; HDC m_hBkDC; m_hBitmap = ::LoadBitmap(::GetModuleHandle(NULL),MAKEINTRESOURCE(IDB_BITMAP2)); m_hBkDC = ::CreateCompatibleD…
/*加入背景图片*/ BOOL CTOOLDlg::OnEraseBkgnd(CDC* pDC) {  // TODO: 在此加入消息处理程序代码和/或调用默认值  CDialog::OnEraseBkgnd(pDC);  HBITMAP   m_hBitmap;  HDC           m_hBkDC;  m_hBitmap   =   ::LoadBitmap(::GetModuleHandle(NULL),MAKEINTRESOURCE(IDB_BITMAP2));  m_hBkDC…
已经很少做winform程序了,最新参与了一个小项目,遇到了控件背景透明的功能要求,特在此总结一下,供有需要的同行参考. 0.背景透明的概念和分类 背景透明是啥意思呢,就是背景透明.哈哈,废话了.其实你想过没有,要求不一样,实现的难道和技术手段也不一样. 最基本的就是不显示控件自己的背景,那,那显示谁的背景? 背景透明后,透过去显示谁,也就是说后面的谁不透明,这是问题的关键,换句话说,透明控件的parent是一个还是多个. 1.简单的背景透明,parent是一个的情况 a.自然透明,如图labe…
通过映射OnCtlColor消息,而后在该函数中使用pDC->SetBkMode(TRANSPARENT)使Static控件背景透明时会出现:文本覆盖重影的问题,当改变控件的文本就会发生新文本与旧文本重叠的现象. 可以通过以下方式使Static控件文本在透明状态下改变时不会产生文本重叠问题: 1.由于Static控件的背景已经是透明的了,那么旧文本应该是画在Static控件的父窗口上的. 2.在给Static控件设置新文本之后(不是之前!)刷新父窗口即可.例如: GetDlgItem(IDC_S…
procedure TForm1.Button3Click(Sender: TObject);begin if (csOpaque in ControlStyle) then ShowMessage('不透明') else ShowMessage('透明') // Form透明end; procedure TForm1.Button3Click(Sender: TObject);begin if (csOpaque in Panel1.ControlStyle) then ShowMessage…
最近在项目中将CStatic控件设置为背景透明且在一个定时器函数改变其文本,结果CStatic的文字重叠了.解决该问题的方案是:从CStatic类派生自己的静态文本控件. 其实设置背景透明,也就是在CStatic重画时,返回一个空刷子而已,所以改变文本并没有改变上次残留的背景,从而导致重叠现象. 为了解决这个问题,我们可以让父窗口重绘该区域,以下是我的解决方法: 1: 从CStatic继承一个类CStaticEx 2: 增加WM_CTLCOLOR消息反射(把很多事情留给父窗口窗口处理不是一件很好…
在使用winform写界面的时候,要想label这种控件实现对背景色透明,并且也懒得每次拖动一次控件都要在后台写一遍label1.Parent=PictureBox1 那么下面方法就介绍了比较简单便捷的方法,在开始搭建界面的时候就要做好铺垫. 1.首先铺好背景图片 设置背景图片充满整窗体 并使背景图在最底下一层 pictureBox1.SendToBack(); 2.添加panel控件 设置panel控件充满窗体 设置panel背景透明 panel1.BackColor = Color.Tran…
Label1.Transparent:=true;你在它的属性窗口把它的Transparent属性改成TRUE就行了 来自为知笔记(Wiz)…