LjxWnd.cpp
上传用户:sunh8215
上传日期:2010-02-13
资源大小:1616k
文件大小:2k
源码类别:

酒店行业

开发平台:

Visual C++

  1. //**************************************************************
  2. //
  3. //
  4. //**************************************************************
  5. // LjxWnd.cpp : implementation file
  6. //
  7. #include "stdafx.h"
  8. #include "LjxWnd.h"
  9. #ifdef _DEBUG
  10. #define new DEBUG_NEW
  11. #undef THIS_FILE
  12. static char THIS_FILE[] = __FILE__;
  13. #endif
  14. //#define  IDB_SPLASHWND 104
  15. #include "..\resource.h"
  16. /////////////////////////////////////////////////////////////////////////////
  17. // CLjxWnd
  18. CLjxWnd::CLjxWnd()
  19. {
  20.     m_bitmap.LoadBitmap(IDB_SPLASHWND);//拷贝资源位图
  21.     m_bitmap.GetBitmap(&bm);//得到位图结构中的大小信息
  22. }
  23. CLjxWnd::~CLjxWnd()
  24. {
  25. }
  26. BEGIN_MESSAGE_MAP(CLjxWnd, CWnd)
  27. //{{AFX_MSG_MAP(CLjxWnd)
  28. ON_WM_PAINT()
  29. //}}AFX_MSG_MAP
  30. END_MESSAGE_MAP()
  31. /////////////////////////////////////////////////////////////////////////////
  32. // CLjxWnd message handlers
  33. void CLjxWnd::CreatLjxWnd()
  34. {
  35.    //建立大小与位图大小相同的窗口
  36.    CreateEx(0,
  37.    AfxRegisterWndClass(0,AfxGetApp()->LoadStandardCursor(IDC_ARROW)),
  38. "animatesplash",
  39. WS_POPUP,
  40. 0,0,bm.bmWidth,bm.bmHeight,
  41. NULL,
  42. NULL,
  43. NULL );
  44. }
  45. void CLjxWnd::OnPaint() 
  46. {
  47. CPaintDC dc(this); // device context for painting
  48. // TODO: Add your message handler code here
  49. MemDC.CreateCompatibleDC(NULL);//建立一个和dc兼容的内存DC放置位图
  50. old_bitmap=MemDC.SelectObject(&m_bitmap);//将创建的位图选入内存DC
  51. int i,j,stepx,stepy,dispnum,x,y; 
  52. int ljx[20][20];      //数组记录已显示过的数据组 
  53. for ( i=0; i<20; i++ ) 
  54. for ( j=0; j<20; j++ ) 
  55. ljx[i][j]=0; 
  56. stepx=bm.bmWidth/20; 
  57. stepy=bm.bmHeight/20; 
  58. srand( (unsigned)time( NULL ) ); 
  59. dispnum=0; 
  60. //记录已显示过的数据组的个数 
  61. while(1) 
  62. { x=rand() % 20; 
  63. y=rand() % 20; 
  64. if ( ljx[x][y] ) //如果为1,则已经显示了,跳出循环。
  65. continue; 
  66. ljx[x][y]=1; //显示,设置为1
  67. dc.StretchBlt( 
  68. x*stepx, y*stepy, 
  69. //目标设备逻辑横、纵坐标 
  70. stepx,stepy, 
  71. //显示位图的像素宽、高度 
  72. &MemDC, 
  73. //位图内存设备对象 
  74. x*stepx, y*stepy, 
  75. //位图的起始横、纵坐标 
  76. stepx,stepy, 
  77. //位图的像素宽、高度 
  78. SRCCOPY); 
  79. dispnum++; 
  80. if ( dispnum >=400 ) 
  81. break; 
  82. Sleep(10); 
  83. }
  84. MemDC.SelectObject(old_bitmap);
  85. // Do not call CWnd::OnPaint() for painting messages
  86. }