设为首页 加入收藏

TOP

17.9.3 电子相册浏览模块的设计与实现(6)
2013-10-07 14:39:52 来源: 作者: 【 】 浏览:51
Tags:17.9.3 电子相册 浏览 模块 设计 实现

17.9.3  电子相册浏览模块的设计与实现(6)

【代码解析】

第4~21行处理封面到右侧翻页的过程及封底到左侧翻页的过程,绘制页面1及页面2后,根据当前翻页的状态确定下步的翻页状态。如果当前状态为左翻页到封面,则第22~28行将只绘制封面并将当前状态改为封面。如果当前状态为右翻页到封底,第29~34行将只绘制封底并将当前状态改为封底。如果当前为一次性翻页,则结束本次翻页。

③ 绘制页面1及页面2

  1. 01  if(m_turnType == type_head)             //只绘制封面  
  2. 02      g.DrawImage(m_pPage[4],m_photoFrameLeft + m_pPage[0]->GetWidth(),  
  3. 03                  m_photoFrameTop,m_pPage[1]->GetWidth(),  
  4. 04                  m_pPage[1]->GetHeight());  
  5. 05  else if(m_turnType == type_end)     //只绘制封底  
  6. 06      g.DrawImage(m_pPage[5],m_photoFrameLeft,m_photoFrameTop,  
  7. 07                  m_pPage[0]->GetWidth(),m_pPage[0]->GetHeight());else  
  8. 08  {  
  9. 09      if(m_turnType == type_rightToend)  
  10. 10      g.DrawImage(m_pPage[0],m_photoFrameLeft,m_photoFrameTop  
  11. 11                  ,m_pPage[0]->GetWidth(),m_pPage[0]->GetHeight());  
  12.                                             //只绘制页面1  
  13. 12      else  
  14. 13      g.DrawImage(m_pPage[1],m_photoFrameLeft + m_pPage[0]->GetWidth(),  
  15. 14                  m_photoFrameTop,m_pPage[1]->GetWidth(), //只绘制页面2  
  16. 15                  m_pPage[1]->GetHeight());  
  17. 16  }  

【代码解析】

在翻页的过程中,当前状态为封面时,没有页面1,封面为页面2。所以第1~4行只需将封面绘制到页面2的位置即可。当前状态为封底时,没有封面2,封底为页面1,所以第5~7行将封底绘制到页面1的位置上。当前状态为右翻页到封底或左翻页到封面时,没有页面4,所以不能直接绘制页面2,原本被页面4覆盖的部分无法处理。当为右翻页到封底时,第9~11行只需绘制页面1。当为左翻页到封面时,第13~15行只需绘制页面2。

④ 封面翻页与右翻页到封底的页面2

在定义上来说封面翻页与右翻页到封底也是右侧翻页,只是封面翻页前左侧没有页面而右翻页到封底后右侧没有页面。封面翻页如图17.40所示。左侧翻页到封底如图17.41所示。

 
图17.40  封面翻页
 
图17.41  封底翻页


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇17.9.3 电子相册浏览模块的设计与.. 下一篇17.9.3 电子相册浏览模块的设计与..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: