`
testcs_dn
  • 浏览: 113769 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

VC实现透明背景和半透明图片

 
阅读更多
1.如何将对话框客户区的背景设成透明的?
crybird (寒号鸟)
http://expert.csdn.net/Expert/topic/2172/2172079.xml
描述:如题。客户区的背景能设成透明的么?如果有时间,非客户区的隐藏也讲讲啦!

回复人: bcpl(我是宇宙中的一粒沙子)
BOOL CALLBACK EnumChildFunc(HWND hwnd, LPARAM lParam)
{
CRgn *pRgn = (CRgn*)lParam;
CRect rcChild;
::GetWindowRect(hwnd, rcChild);
CRgn rgnChild;
CRgn rgnCopy;
rgnCopy.CreateRectRgn(0, 0, 1, 1);
rgnCopy.CopyRgn(pRgn);
rgnChild.CreateRectRgn(rcChild.left, rcChild.top, rcChild.right, rcChild.bottom);
pRgn->CombineRgn(&rgnCopy, &rgnChild, RGN_OR);
return TRUE;
}

int SetBackTransparent(CWnd *pWnd, BOOL bClientOnly = TRUE)
{
CRgn rgn;
if(bClientOnly)
{
CRgn rgnWindow, rgnClient;
CRect rcWindow, rcClient, rcRgn;
pWnd->GetWindowRect(rcWindow);
pWnd->GetClientRect(rcClient);
pWnd->ClientToScreen(rcClient);
rgnWindow.CreateRectRgn(rcWindow.left, rcWindow.top, rcWindow.right, rcWindow.bottom);
rgnClient.CreateRectRgn(rcClient.left, rcClient.top, rcClient.right, rcClient.bottom);
rgn.CreateRectRgn(0, 0, 1, 1);
rgn.CombineRgn(&rgnWindow, &rgnClient, RGN_DIFF);
}
else
{
rgn.CreateRectRgn(0, 0, 0, 0);
}
::EnumChildWindows(pWnd->GetSafeHwnd(), (WNDENUMPROC)EnumChildFunc,(LPARAM)&rgn);
return pWnd->SetWindowRgn(rgn, TRUE);
}
调用办法:
在CYourDialog::OnInitDialog里加上
SetBackTransparent(this);
如果要连非客户区都透明,用
SetBackTransparent(this, FALSE);
版主点评:
高手。

//---------------------------------------------------------------------------
http://expert.csdn.net/Expert/topic/2422/2422164.xml
主  题: 如何在一个背景图像上,做半透明的图?
作  者: DMC (DMC)

描述:
如何在一个背景图像上,做半透明的图。我想实现在一个地图上显示半透明的数据信息,类似天气预报中等压图的处理。如何才能实现这个背景图和最上层图的相互映射,完成半透明的效果?

回复人: Raxxxer(Jasmine Hellstorm)
你可以使用windows的一个api AlphaBlend,用法和BitBlt差不多:
BLENDFUNCTION bf;
bf.AlphaFormat=0;
bf.BlendFlags=0;
bf.BlendOp=AC_SRC_OVER;
bf.SourceConstantAlpha=100;//透明度0-255
AlphaBlend(hBackDC,0,70,73,20,hMaskDC,0,0,73,20,bf);
不可以在WindowsCE里用
#include <wingdi.h>
//还要在Project -- setting -- link 里连接上msimg32.lib

分享到:
评论

相关推荐

    半透明背景图

    在提供的压缩包文件中,"半透明位图"可能是包含半透明背景图的资源文件,可以将其导入到你的VC项目中,按照上述步骤进行操作,就能在对话框中实现半透明背景效果。 总的来说,实现半透明背景图涉及了Windows图形...

    VC实现对话框平滑半透明动态关闭

    在Windows操作系统中,可以通过修改窗口的Alpha值来实现半透明效果。Alpha值范围是0(完全透明)到255(不透明),调整这个值可以使窗口变得透明或半透明。 在VC++中,我们可以利用GDI+库来实现半透明效果。GDI+...

    VC代码 透明位图显示——背景透明

    通过调整Alpha值,还可以实现不同程度的半透明效果,增强界面的层次感和交互性。 总之,透明位图是提升应用程序视觉体验的重要手段。在VC++中,借助GDI+库,我们可以轻松地实现透明位图的加载和显示,从而创建出...

    vc小技巧和vc界面技术

    此包中有:VC实现透明背景和半透明图片.txt vc jpg 背景图.txt 怎么设置鼠标光标成为一个指定的 _ani形状以及使用vc编写小程序的一些技巧给大家分享,希望对大家有所帮助等资料

    VC 用GDI与PNG图片实现半透明桌面时钟

    在这个特定的项目中,“VC用GDI与PNG图片实现半透明桌面时钟”,我们将探讨如何利用VC、GDI以及PNG图像格式来构建一个具有半透明效果的桌面时钟应用。 首先,GDI是Windows操作系统内核的一部分,它为开发者提供了...

    在VC6.0中用GDI+调用png图片实现半透明渐变的特效窗口

    在 VC6.0 中用 GDI+ 调用 png 图片实现半透明渐变的特效窗口 本文旨在介绍如何在 VC6.0 中使用 GDI+ 调用 png 图片实现半透明渐变的特效窗口。该程序实现了指针式和数字式两种时钟显示方式,并且窗口实现了半透明...

    MFC实现半透明效果图片

    在本文中,我们将深入探讨如何在MFC(Microsoft Foundation Classes)框架中实现半透明效果的图片。MFC是微软提供的一套C++类库,用于简化Windows应用程序开发,特别是基于对话框的应用程序。半透明效果在现代用户...

    vc 实现半透明按钮

    在VC++编程环境中,实现半透明按钮是一种常见的需求,特别是在创建具有现代用户界面的应用程序时。半透明按钮可以使用户界面更加美观,同时增加交互性。本文将深入探讨如何在VC++中实现半透明按钮,主要关注以下几个...

    VC使用png透明背景方式显示任意形状按钮

    在VC++开发中,有时我们需要创建具有自定义形状和透明背景的按钮,以提供更美观的用户界面。本文将深入探讨如何在Visual C++(VC)环境下,利用PNG图像的透明特性来实现这一功能,特别是在VS2010中。我们将讨论关键...

    VC位图背景弹出菜单加选中菜单半透明

    位图背景弹出菜单加选中菜单半透明,VC实现的小技巧。

    VC半透明窗体可调整透明度

    在标题"VC半透明窗体可调整透明度"中,我们讨论的核心是创建具有半透明效果的窗口,并且能够调整其透明度。这种功能通常需要深入理解Windows API,尤其是与窗口样式和绘图相关的部分。 在Windows系统中,实现窗体的...

    vc mfc实现dialog半透明置顶效果

    在VC++ MFC(Microsoft Foundation Classes)环境中,创建具有半透明和置顶效果的Dialog对话框是一项常见的需求,尤其在设计用户界面时。本篇将详细介绍如何利用MFC实现这一功能,主要涉及Windows API函数的使用,...

    vc++实现背景透明的按钮

    本文将深入探讨如何使用VC++实现这样的功能,主要基于标题和描述提供的信息,以及与“vc 按钮 透明”相关的知识点。 首先,我们需要理解Windows API中的控件工作原理。在Windows系统中,按钮是一个窗口类(Window ...

    VC 实现的透明桌面

    【VC 实现的透明桌面】是一种使用Visual C++(简称VC)编程语言创建的应用程序,它能够让用户在桌面背景下看到程序界面,实现类似360软件的透明效果。这种技术通常涉及到Windows API(应用程序接口)的深入使用,...

    在VC6.0中用GDI+调用png图片实现半透明渐变的特效窗口源码

    在VC6.0环境下,利用GDI+库来实现PNG图片的半透明渐变特效窗口是一种常见的技术。GDI+是Microsoft提供的一种图形设备接口,它扩展了传统的GDI(Graphics Device Interface)功能,增加了对矢量图形、位图操作以及更...

    自绘CSliderCtrl透明背景

    设置Alpha值为0可以创建完全透明的画刷,但通常我们会设置一个较低的Alpha值,以实现半透明效果。使用这个画刷,我们可以填充滑块控件的矩形区域,从而达到透明背景的效果。 4. **绘制滑块控件的内容:** 接下来,...

    VC++半透明窗体实现

    实现一个半透明的对话框窗体,效果很好,可以扩展为屏幕锁定软件,半透明窗体的透明度可以修改达到理想的透明效果,同时窗体的背景图片也可以随自己的心意去选择,编译平台:VC 6.0,VS 2005,VS 2008都可以,欢迎...

    visual c++ vc自定义半透明对话框 显示半透明位图对话框和位图按钮.zip

    在Visual C++ (VC++)开发环境中,创建自定义半透明对话框和位图按钮是一项常见的需求,这可以提升应用程序的视觉效果和用户体验。本压缩包包含的资源和文档主要涉及了以下几个关键知识点: 1. **半透明对话框**:在...

    半透明窗体的实现(vc2005)

    总的来说,通过VC2005和Windows API,我们可以轻松地创建出具有半透明效果的窗体,提升应用的视觉体验。通过学习和理解`SetLayeredWindowAttributes`函数的工作原理以及如何在VC++ 2005中使用它,开发者可以创造出...

Global site tag (gtag.js) - Google Analytics