文档章节

窗口使用半透明图片,控件不透明的方法

h
 hehe785412
发布于 2015/02/11 18:20
字数 200
阅读 17
收藏 0

最近项目软件需要制作半透明窗口,但控件不能透明。窗口和控件都是自绘的。
网上大部分例子都是直接设置窗口透明度实现,这样只能让整个窗口透明,达不到我们想要的效果。
经研究发现,需要使用父子两个窗口配合制作,父窗口不能在OnPaint那里自绘,
而是直接GetDC得到句柄自绘背景,子窗口负责自绘控件。

 

关键代码:
父窗口

OnInitDialog()
{
m_dlg.Create(m_hWnd);
        m_dlg.ShowWindow(SW_SHOW);
        m_dlg.MoveWindow(&rct);
        
        HDC hDC =::GetDC(m_hWnd);
        BLENDFUNCTION blend;
        blend.BlendOp=0; //theonlyBlendOpdefinedinWindows2000
        blend.BlendFlags=0; //nothingelseisspecial...
        blend.AlphaFormat=1; //...
        blend.SourceConstantAlpha=255;//AC_SRC_ALPHA
        DWORD dwExStyle=::GetWindowLong(m_hWnd,GWL_EXSTYLE);
        ::SetWindowLong(m_hWnd,GWL_EXSTYLE,dwExStyle^0x80000);
        HDC hMemDc;
        hMemDc=CreateCompatibleDC(hDC);
        HBITMAP hBitMap=CreateCompatibleBitmap(hDC,500,500);
        SelectObject(hMemDc,hBitMap);

转自:

http://www.pailm.com

 

 

本文转载自:http://www.gzzsc.net/thread-6580-1-1.html

共有 人打赏支持
h
粉丝 0
博文 2
码字总数 0
作品 0
黄石
私信 提问
QT下的几种透明效果

1.窗口整体透明,但是窗体上的控件不透明。 通过设置窗体的背景色来实现,将背景色设置为全透。 QPalette pal = palette(); pal.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x0...

晨曦之光
2012/04/13
121
0
QT QWidget设置窗体透明度方法汇总

1、设置窗体的背景色 在构造函数里添加代码,需要添加头文件qpalette或qgui QPalette pal = palette(); pal.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00)); setPalette(pal)......

霄霄月月
2012/12/30
0
0
QT下的几种透明效果

1.窗口整体透明,但是窗体上的控件不透明。 通过设置窗体的背景色来实现,将背景色设置为全透。 QPalette pal = palette(); pal.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x0...

长平狐
2013/01/11
63
0
popupwindow popupmenu dialog

private void iniPopupWindow() { LayoutInflater inflater = (LayoutInflater) this .getSystemService(Context.LAYOUTINFLATERSERVICE); View layout = inflater.inflate(R.layout.taskdet......

当空皓月
2014/10/29
0
0
DirectX3D游戏制作之---游戏界面的设计

前言: 再深沉的感情,再真挚的牵挂,还是会有分开的一天......到头来又怎么敌得过生离死别...... -------韩菱纱《仙剑奇侠传四》 PS:为了方便大家阅读,个人认为比较重要的内容-------红色...

loving_forever_
2016/08/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

windows上类似dnsmasq的软件Dual DHCP DNS Server

官网地址:http://dhcp-dns-server.sourceforge.net/官网定向的下载地址:https://sourceforge.net/projects/dhcp-dns-server/files/ 设置参考地址:http://blog.51cto.com/zhukeqiang/18264......

xueyuse0012
今天
1
0
LinkedHashMap源码解析

前言 HashMap中的元素时无序的,也就是说遍历HashMap的时候,顺序和放入的顺序是不一样的。 如果需要有序的Map,就可以采用LinkedHashMap. LinkedHashMap通过维护一个包含所有元素的双向链表,...

grace_233
今天
3
0
初识flask

文档 0.10.1版本 http://www.pythondoc.com/flask/index.html 1.0.2版本 https://dormousehole.readthedocs.io/en/latest/ 安装flask $ pip3 install flaskCollecting flask Downloading......

yimingkeji
昨天
4
0
Akka系统《sixteen》译

Actor是一个封装状态(state)和行为(behavior)的对象,它们只通过交换消息通信(放入收件人邮箱的邮件)。从某种意义上说,Actor是最严格的面向对象编程形式,但它更适合将他们视为人:在与Act...

woshixin
昨天
3
0
技术工坊|如何开发一款以太坊钱包(深圳)

【好消息!】HiBlock区块链技术工坊已经成功举办了26期,其中北京1期,西安1期,成都2期,上海22期。经常有社区的小伙伴问定期举办技术工坊的除了上海以外,其他城市有没有?现在区块链技术工...

HiBlock
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部