设为首页 加入收藏

TOP

17.9.1 相册管理模块的设计与实现(3)
2013-10-07 14:41:01 来源: 作者: 【 】 浏览:55
Tags:17.9.1 相册 管理 模块 设计 实现

17.9.1  相册管理模块的设计与实现(3)

(5)利用向导为组合框添加CBN_ SELCHANGE消息的处理函数OnSelChange Comb1(),如图17.30所示。

 
图17.30  利用向导添加组合框的处理函数
当用户切换相册时,会触发这个函数。
  1. 01  void CMyAlbumDlg::OnSelchangeCombo1()   
  2. 02  {  
  3. 03      m_curAlbum = m_comb.GetCurSel();        //获取用户选择的相册序号  
  4. 04      wchar_t *wImage;  
  5. 05      int len;  
  6. 06      for(int i = 0; i < m_album[m_curAlbum].num_photo; i++)  
  7. 07      {   //载入用户指定相册中所有的相片  
  8. 08          len = MultiByteToWideChar(CP_ACP, 0,  
  9. 09                                      (LPCTSTR)m_album[m_curAlbum].str_  
  10.                                         photo [i],  
  11. 10                                      -1, NULL, 0);  
  12. 11          wImage = new wchar_t[len];          //相片名称数组  
  13. 12          MultiByteToWideChar(CP_ACP, 0,  
  14. 13                                   (LPCTSTR)m_album[m_curAlbum].  
  15.                                      str_photo[i],  
  16. 14                                  -1, wImage, len);   
  17. 15          m_image[i] = Image::FromFile(wImage);  
  18. 16          delete []wImage;  
  19. 17      }  
  20. 18      Invalidate();                           //重绘  
  21. 19  }  

在这个函数中首先获取用户选中的相册编号,然后载入用户指定相册中的所有相片,最后重绘界面。

(6)重载对话框的OnPaint()函数,在该函数中实现预览当前活动相册中所有相片的功能。

  1. 01  void CMyAlbumDlg::OnPaint()   
  2. 02  {  
  3. 03      CPaintDC dc(this);  
  4. 04      CDC dcMemory;                       //创建内存设备  
  5. 05      dcMemory.CreateCompatibleDC(NULL);  
  6. 06      //获取客户区大小  
  7. 07      CRect bkRect;  
  8. 08      GetClientRect(&bkRect);  
  9. 09      CBitmap bitmap;  
  10. 10      bitmap.CreateCompatibleBitmap(&dc, bkRect.Width(), bkRect.  
  11.         Height());  
  12. 11      COLORREF color = GetSysColor(COLOR_3DFACE);  
  13. 12      //将位图载入内存设备  
  14. 13      SelectObject(dcMemory.GetSafeHdc(), bitmap) ;  
  15. 14      dcMemory.FillSolidRect(bkRect,color);   //设置内存设备背景色  
  16. 15      Graphics g(dcMemory.m_hDC);   
  17. 16      Image bk_image(L"背景\\bg001.jpg");       //载入背景图像  
  18. 17      g.DrawImage(&bk_image,bkRect.left,bkRect.top,bkRect.Width(),  
  19.         bkRect.Height());  
  20. 18      //绘制相册中的相片  
  21. 19      for(int i = 0; i < m_album[m_curAlbum].num_photo; i++)  
  22. 20      {  
  23. 21          g.DrawImage(m_image[i],205 + ((i%6)*120),55 + (i / 6)*120,  
  24.             100,100);  
  25. 22      }  
  26. 23      dc.BitBlt(0,0,bkRect.Width(),bkRect.Height(),&dcMemory,0,0,  
  27.         SRCCOPY);  
  28. 24      CDialog::OnPaint();  
  29. 25  }  


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇17.9.1 相册管理模块的设计与实现.. 下一篇17.9.1 相册管理模块的设计与实现..

评论

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