接上一篇GDI加载PNG背景后解决控件被覆盖问题。

昨天使用ImageFromIDResource加载PNG图片,UpdateClockDisplay刷新背景之后出现个问题,控件全部被覆盖了。

本来是好事,可以隐藏控件仍可点击按钮。但关系到一些需要实时回显的数据就不行了,如输入框和文本框等。

今天看了为大侠的帖子,解决办法是:创建两个窗口A跟B,A来显示背景,B就直接显示空间并且加上透明色使得界面全透明。

因为在家里,就根据自己的工程把步骤记录下来,以便不时之需。


是建立在昨天的博客帖子:即已经做好A窗口,可以加载PNG作为背景图片开始:


A窗口要保证stdafx.h里面具有以下两行

#include <gdiplus.h>    //新加的  GDI+
using namespace Gdiplus;


1-在资源处添加资源新建一个对话框B,在对话框右键添加类,取名为OnWindow 确定之后便会多出一个OnWindow .h跟一个OnWindow .cpp文件

2-进入OnWindow .h文件,在public添加如下画刷,是用在一个信号上的。这个窗口基本不需要设置太多。

public:
CBrush m_brush;  //背景画刷 
CBitmapButton m_ok; 
CBitmapButton m_cancel; 


3-进去OnWindow .cpp文件在类向导中添加初始化虚函数 ::OnInitDialog()并且在里面添加如下代码:

BOOL COnWindow::OnInitDialog()
{

CDialogEx::OnInitDialog();
m_brush.CreateSolidBrush(RGB(255,0,255));  //背景设置为粉红色 

 //改为层级窗体: 
//SetWindowsLong将窗体设置为层级窗体 
DWORD dwExStyle=GetWindowLong(m_hWnd,GWL_EXSTYLE); 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值