注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

deisp的博客

 
 
 

日志

 
 

MiniGUI 增值版应用开发 - (解决)弹出窗口销毁后,被覆盖的部分不能正常显示原窗口图片  

2008-09-19 17:33:11|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |


wsnyydpy    



威望: 0


现金: 7985 雷傲元
存款: 没开户
贷款: 没贷款

在线: 97 时 28 分 05 秒

注册日期: 2007/12/10
   



威望: 0


现金: 7985 雷傲元
存款: 没开户
贷款: 没贷款

在线: 97 时 28 分 05 秒

注册日期: 2007/12/10
        
[这个贴子最后由wsnyydpy在 2008/08/01 10:33am 第 1 次编辑]

我按照源码自己写了一个类似MessageBox的函数,但是当这个弹出窗口销毁之后,托管窗口中被覆盖部分不能显示原先的背景图片,加载背景图片的代码如下:
                 case MSG_ERASEBKGND:
{HDC hdc = (HDC)wParam;
const RECT* clip = (const RECT*) lParam;
BOOL fGetDC = FALSE;
RECT rcTemp;
if (hdc == 0) {
hdc = GetClientDC (hdlg);
fGetDC = TRUE;
}
if (clip) {
rcTemp = *clip;
ScreenToClient (hdlg, &rcTemp.left,&rcTemp.top);
ScreenToClient (hdlg, &rcTemp.right, &rcTemp.bottom);
IncludeClipRect (hdc, &rcTemp);
}
/* 用图片填充背景 */
FillBoxWithBitmap (hdc, 0, 0, 0, 0, &BitMap[0]);
if (fGetDC)
ReleaseDC (hdc);
return 0;
}
开始怀疑跟IncludeClipRect函数有关,所以查了下这个函数,说法如下:
当一个窗口被隐藏或销毁时,该窗口之下的所有窗口将受到影响,此时,要将被隐藏或销毁窗口的矩形包含到这些受影响窗口的全局剪切域中,为此,MiniGUI 的剪切域维
护接口中有一个函数专用于该类操作(IncludeClipRect),感觉应该没问题,不知道是啥原因,忘大侠们指教


版权所有,不得擅自转载


wsnyydpy    



威望: 0


现金: 7985 雷傲元
存款: 没开户
贷款: 没贷款

在线: 97 时 28 分 05 秒

注册日期: 2007/12/10
   



威望: 0


现金: 7985 雷傲元
存款: 没开户
贷款: 没贷款

在线: 97 时 28 分 05 秒

注册日期: 2007/12/10




引文来源  MiniGUI 增值版应用开发 - (解决)弹出窗口销毁后,被覆盖的部分不能正常显示原窗口图片
  评论这张
 
阅读(453)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017