欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

brew里面如何保存当前的屏幕的画面,然后用的时候再显示保存的屏幕画面

更新时间: 2014-01-05 02:46:09 责任编辑: Author_N1

 

BREW里面怎么保存当前的屏幕的画面,然后用的时候再显示保存的屏幕画面?
C/C++ code

case EVT_APP_SUSPEND:
    // Add your code here...
            
      return(TRUE);


case EVT_APP_RESUME:
     // Add your code here...
            
      return(TRUE);


这两个消息,怎么在处理EVT_APP_RESUME的时候,把界面还原到EVT_APP_SUSPEND消息来的时候的界面?

--参考方法--
// 宏定义
#define RELEASEIF(pi) { if (pi) { IBASE_Release((IBase*)(pi)); (pi)=0; }}

// 用于屏幕保存与恢复,定义在应用数据结构中
IBitmap *m_pScreenBitmap;
AEEDeviceInfo deviceInfo; 

// 在应用初始化中加入
pMe->deviceInfo.wStructSize = sizeof(pMe->deviceInfo);
ISHELL_GetDeviceInfo(pMe->a.m_pIShell,&pMe->deviceInfo);


// App is being suspended 
case EVT_APP_SUSPEND:
// 保存屏幕
SaveScreen(pMe, &pMe->m_pScreenBitmap);

return(TRUE);


// App is being resumed
case EVT_APP_RESUME:
// 恢复屏幕
RestoreScreen(pMe, pMe->m_pScreenBitmap);

return(TRUE);


// 保存屏幕
void SaveScreen(CBasicApp *pMe, IBitmap **ppScreenBitmap)
{
IBitmap *pBitmapDisplay = NULL;
IDISPLAY_GetDeviceBitmap( pMe->pIDisplay, &pBitmapDisplay );
if(pBitmapDisplay)
{
IBITMAP_CreateCompatibleBitmap( pBitmapDisplay, 
ppScreenBitmap,
pMe->deviceInfo.cxScreen, 
pMe->deviceInfo.cyScreen);

if(*ppScreenBitmap)
{
IBitmap_BltIn(*ppScreenBitmap,
0,
0,
pMe->deviceInfo.cxScreen,
pMe->deviceInfo.cyScreen,
pBitmapDisplay,
0,
0,
AEE_RO_COPY);
}
IBITMAP_Release(pBitmapDisplay);
}
}

// 恢复屏幕
void RestoreScreen(CBasicApp *pMe, IBitmap *pScreenBitmap)
{
if(pScreenBitmap)
{
IDISPLAY_BitBlt(pMe->pIDisplay, 
0, 
0, 
pMe->deviceInfo.cxScreen, 
pMe->deviceInfo.cyScreen, 
pScreenBitmap, 
0, 
0, 
AEE_RO_COPY);

IDisplay_Update(pMe->pIDisplay);
RELEASEIF(pScreenBitmap);
}
}

上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:46:09
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/14198/
本文WWW.DOC100.NET DOC100.NET版权所有。