MFC之半透明控件

原创 2015年07月09日 13:59:39

半透明控件的实现原理:

创建一个临时DC,发消息给父控件告知其绘制其内容于临时DC上,然后将自己相对于父控件的那块区域的绘制COPY到自己的PaintDC上,此后再做其他绘制。

代码思路如下:

Child:

{

CPaintDC dc;

CMemDC mdc;

//创建临时DC

CBitmap bitmap;

CDC cdc;

::SendMessage(hParent, WM_COPY_PARENT, cdc, 0); //发消息通知父控件将其内容绘制在cdc上

paint cdc to mdc

do your paint on mdc

}

Parent:

void DoPaint(HDC hdc, CRect rc);

void OnPaint()

{

DoPaint();

}

LRESULT OnCopyParent(WPARAM w, LPARAM p)

{

HDC hdc = w;

DoPaint(w);

return 0;
}

源码地址:点击打开链接

相关文章推荐

[MFC] 几种子控件半透明效果的实现办法

什么是 ? 如下图所示 美图秀秀中间的四个按钮 边缘都有椭圆效果: 熟悉MFC开发的都知道 虽然四个按钮的边缘是椭圆的 实际上椭圆之外的角落里 也属于子控件的窗口区域  即:如下图所示 虽然子控件...

MFC中各种控件透明的实现方法总结

Button: 资料来源: http://www.cnblogs.com/songsu/articles/1370665.html 关键是其中的OnEraseBkgnd。OnDrawItem只是...

MFC 对话框 开启 Aero 毛玻璃 半透明 效果 (二)

 这张图的缺陷,不用说,就是那2个按钮了。为什么会这样的呢?因为 DWM 使用 alpha 通道来绘图。然而,诞生已久的 GDI 并不支持 alpha 通道。想用 alpha 通道来绘图,必须使用 G...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

VC实现顶层窗口的透明与实现子窗口的透明【重点:子窗口透明处理】

本人在vc开发过程中,多次因窗口透明而煞费苦心,在本人的前一文章《UpdateLayeredWindow与SetLayeredWindowAttributes》中已经指明实现窗口的透明方法,在过往实际...

MFC之半透明控件的实现

  • 2015年07月09日 13:48
  • 128KB
  • 下载

MFC半透明窗体 不透明控件

  • 2013年12月10日 10:10
  • 128KB
  • 下载

Android设置控件的透明度(半透明效果)

1. 前言有些需求会改变布局颜色透明度,比如根据滑动距离,改变title颜色,设置控件如View,Button等的透明度,有3种方法。2.使用方法(1)java代码实现:text = (TextVie...

C#半透明风格时钟控件C-sharo源码

  • 2017年04月18日 10:12
  • 749KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MFC之半透明控件
举报原因:
原因补充:

(最多只允许输入30个字)