| ²é¿´: 144 | »Ø¸´: 0 | |||
| µ±Ç°Ö÷ÌâÒѾ´æµµ¡£ | |||
zsgllyľ³æ (ÖøÃûдÊÖ)
|
[½»Á÷]
Visual C++ÖеÄͼÐÎÌØ¼¼
|
||
|
Ëæ×żÆËã»úÐÅÏ¢±íʾ¼°ÊµÏֵĶàýÌ廯£¬ÔÚÐí¶àѧϰÈí¼þ¡¢ÓÎÏ·Èí¼þ£¬ÒÔ¼°¶àýÌå¿Î¼þÖÆ×÷Èí¼þÖУ¬¾³£Ê¹Óø÷ÖÖͼÐÎÏÔʾ¼¼ÇÉ£¬ÈçͼÐεÄÍÆÀ¡¢½»´í¡¢ÓêµÎ×´¡¢°ÙÒ³´°¡¢»ýÄ¾Ëæ»ú¶ÑµþµÈÏÔʾģʽ¡£ÕâÑùʹ»Ãæ±äµÃ¸üΪÉú¶¯»îÆÃ£¬¸üÄÜÎüÒýÓû§£¬Ò²Îª¸üºÃµØ·¢»ÓÈí¼þµÄ¹¦Äܵ춨ÁË»ù´¡¡£±¾ÎľÍVisual C++ 6.0ÖÐʵÏÖͼÐεĸ÷ÖÖÏÔʾ¼¼ÇɵÄÔÀí¼°¾ßÌå·½·¨×öЩ̽ÌÖ¡£ »ù±¾ÔÀí ÔÚVisual C++6.0ÖУ¬ÏÔʾλͼµÄ·½·¨¼°¹ý³ÌÈçÏÂ: 1. ÏÔʾ³ÌÐò×ÊÔ´ÖеÄλͼ(λͼµÄËùÓÐÊý¾Ý¾ù´æÔÚÓÚ¿ÉÖ´ÐÐÎļþÖÐ) (1)´Ó×ÊÔ´ÖÐ×°Èëλͼ ¡ñ ¶¨Òåλͼ¶ÔÏóÊý¾Ý³ÉÔ±CBitmap m_Bitmap; ¡ñ µ÷ÓÃCBitmap³ÉÔ±º¯ÊýLoadBitmap()£¬Èçm_Bitmap.LoadBitmap(IDB_BITMAP1); ¡ñ ´«ÈëLoadBitmapµÄ²ÎÊýÊÇλͼÔÚͼÐÎ±à¼Æ÷ÖÐÉú³É»ò´ÓλͼÎļþÖÐÒýÈëʱ¸³ÓèµÄʶ±ð·û¡£ (2)Éú³ÉÓëλͼÏàÁªÏµµÄÄÚ´æÉ豸Çé¾³¶ÔÏó CDC MemDC; MemDC.CreateCompatibleDC(NULL); MemDC.SelectObject(&m_Bitmap); (3)ÏÔʾλͼ CClientDC ClientDC(this); BITMAP BM; m_Bitmap.GetObject(sizeof(BM)£¬&BM); ClientDC.BitBlt ( X£¬Y, //Ä¿±êÉ豸Âß¼ºá¡¢×Ý×ø±ê BM.bmWidth, BM.bmHeight, //ÏÔʾλͼµÄÏñËØ¿í¡¢¸ß¶È &MemDC, //´ýÏÔʾλͼÊý¾ÝµÄÉ豸Çé¾³¶ÔÏó 0£¬0, //Ô´Êý¾ÝÖеĺᡢ×Ý×ø±ê SRCCOPY); //λ²Ù×÷·½Ê½ ÕâÖÖ·½·¨ÏÔʾλͼËٶȿ죬µ«²»ÊǺÜÁé»î£¬¶øÇÒ»áʹ¿ÉÖ´ÐÐÎļþÔö´ó¡£ 2. ÏÔʾ¶ÀÁ¢Îļþ·½Ê½µÄλͼ(λͼµÄËùÓÐÊý¾Ý¶ÀÁ¢ÓÚ¿ÉÖ´ÐÐÎļþ) HBITMAP *hBitmap; //¶¨Òåλͼ¶ÔÏó¾ä±ú BITMAP BM; CDC MemDC; CClientDC ClientDC(this); MemDC.CreateCompatibleDC(&ClientDC); hBitmap=(HBITMAP*):: LoadImage ( AfxGetInstanceHandle(), //È¡µÃÓ¦ÓóÌÐò¾ä±ú ¡°demo1.bmp¡±, //λͼÎļþÃû IMAGE_BITMAP, //ÀàÐÍΪWindowsλͼ 0£¬0, LR_LOADFROMFILE); //´ÓÎļþÖÐȡλͼÊý¾Ý MemDC.SelectObject(hBitmap); :: GetObject(hBitmap£¬sizeof(BM)£¬&BM); ClientDC.BitBlt(¡¡) //ʹÓøñʽÓë·½·¨Ò»Í¬ ÕâÖÖ·½·¨ÏÔʾλͼËٶȽÏ֮ǰһÖÖÂýÁËÒ»µã£¬µ«ÆäÁé»îÐԽϴ󣬿ÉÒÔÈÎÒâ±ä»»Î»Í¼Îļþ£¬¶øÎÞÐèÖØÐ±àÒëÔ´³ÌÐò, Ò²¼õСÁË¿ÉÖ´ÐÐÎļþµÄ´óС¡£ ʵÏÖ·½·¨ ÏÂÃæ½éÉܸ÷ÖÖͼÐÎÏÔʾ¼¼ÇɵľßÌåʵÏÖÔÀí¼°·½·¨¡£ÒÔÏÂËùÓгÌÐòËã·¨µÄʵÏÖ¾ù¿É·ÅÔÚÊÓÀà(CView£¬Ò²¿ÉÊÓ×Ô¼ºµÄÐèÒª·ÅÔÚÆäËûÀà)Öд¦Àí£¬ÇÒÓбØÒª½øÐÐÈçϵÄÏà¹Ø²Ù×÷£º Ôö¼ÓÈçÏÂÀà³ÉÔ±±äÁ¿: BITMAP m_Bm; //±£´æÎ»Í¼µÄ¿í¡¢¸ß¶ÈµÈÊý¾Ý HBITMAP *m_hBitmap; //±£´æÎ»Í¼Êý¾Ý¾ä±ú CDC m_MemDC; //ÄÚ´æÉ豸Çé¾³¶ÔÏó ÔÚÀ๹Ô캯ÊýÖмÓÈëÈçÏ´úÂë: m_MemDC.CreateCompatibleDC(NULL); //²úÉúÄÚ´æÉ豸Çé¾³¶ÔÏó m_hBitmap=(HBITMAP *)::LoadImage( //´ÓÎļþÖÐ×°ÈëλͼÊý¾Ý AfxGetInstanceHandle(), ¡°demo1.bmp¡±, IMAGE_BITMAP, 0£¬0, LR_LOADFROMFILE ); m_MemDC.SelectObject(m_hBitmap); //½«Î»Í¼Ñ¡ÈëÄÚ´æÉ豸Çé¾³¶ÔÏó ::GetObject(m_hBitmap£¬sizeof(m_Bm),&m_Bm); 1. ˮƽ½»´íЧ¹û ÔÀí£º½«ÄÚ´æÉ豸Çé¾³¶ÔÏó(ÈçMemDC)ÖеÄλͼÊý¾Ý²ð·Ö³ÉÆæ¡¢Å¼É¨ÃèÏßÁ½²¿·Ö£¬ÆäÖÐÆæÊýÌõɨÃèÏßÓÉÉÏÍùÏÂÒÆ¶¯£¬Å¼ÊýÌõɨÃèÏßÔòÓÉÏÂÍùÉÏÒÆ¶¯£¬ÇÒÁ½Õßͬʱ½øÐС£ÆÁÄ»ÉϵÄЧ¹ûΪ·Ö±ðÓÉÉÏÏÂÁ½¶Ë³öÏֵĽϵդÀ¸Í¼ÐΣ¬Öð½¥Ï໥¿¿½ü£¬Ö±ÖÁÕû¸öλͼÍêÈ«Çå³þ¡£´¹Ö±½»´íЧ¹ûµÄʵÏÖÔÀíÓëÖ®ÀàËÆ¡£ ³ÌÐòËã·¨£º int i£¬j; for ( i=0; i<=m_Bm.bmHeight; i+=2 ) {j = i; while ( j>0 ) {ClientDC.StretchBlt( //ÆæÊý£¬ÓÉÉÏÖÁÏ 0£¬j-1, //Ä¿±êÉ豸Âß¼ºá¡¢×Ý×ø±ê m_Bm.bmWidth£¬1, //ÏÔʾλͼµÄÏñËØ¿í¡¢¸ß¶È &m_MemDC, //ԴλͼÉ豸Çé¾³¶ÔÏó 0£¬m_Bm.bmHeight-(i-j-1), //ԴλͼµÄÆðʼºá¡¢×Ý×ø±ê m_Bm.bmWidth£¬1, //ԴλͼµÄÏñËØ¿í¡¢¸ß¶È SRCCOPY); ClientDC.StretchBlt( //żÊý£¬ÓÉÏÂÖÁÉÏ 0£¬m_Bm.bmHeight-j, //Ä¿±êÉ豸Âß¼ºá¡¢×Ý×ø±ê m_Bm.bmWidth£¬1, //ÏÔʾλͼµÄÏñËØ¿í¡¢¸ß¶È &m_MemDC, //ԴλͼÉ豸Çé¾³¶ÔÏó 0£¬i-j, //ԴλͼµÄÆðʼºá¡¢×Ý×ø±ê m_Bm.bmWidth,1, //ԴλͼµÄÏñËØ¿í¡¢¸ß¶È SRCCOPY); j-=2; } // while ( j>0 ) Sleep(10); } //for ( i=0; i<=m_Bm.bmHeight; i+ =2 ) 2. ÓêµÎЧ¹û ÔÀí£º½«ÄÚ´æÉ豸Çé¾³¶ÔÏó(ÈçMemDC)ÖÐλͼÊý¾ÝµÄ×îºóÒ»ÌõɨÃèÏߣ¬Ë³ÐòµØ´ÓÄ¿±êÉ豸(ÈçClientDC)ÖдýÏÔʾλͼµÄµÚÒ»ÌõɨÃèÏßËùÔÚλÖÃÒÆ¶¯ÖÁ×îºóÒ»Ìõ´¦£¬²¢±£Áô´ËÌõɨÃèÏßÔÚÆÁÄ»ÉÏÒÆ¶¯Ê±ÁôϵĹ켣¡£½Ó×ÅÔÙ°ÑMemDCÖÐλͼÊý¾ÝµÄµ¹ÊýµÚ¶þÌõɨÃèÏߣ¬Ë³ÐòµØ´ÓÄ¿±êÉ豸(ÈçClientDC)ÖдýÏÔʾλͼµÄµÚÒ»ÌõɨÃèÏßËùÔÚλÖÃÒÆ¶¯ÖÁµ¹ÊýµÚ¶þÌõ´¦¡£ÆäÓàµÄɨÃèÏßÒÀ´ËÀàÍÆ¡£ ³ÌÐòËã·¨£º int i£¬j; for ( i=0; i<=m_Bm.bmHeight; i++ ) {for ( j=0; j<=m_Bm.bmHeight-i; j++ ) ClientDC.StretchBlt( 0£¬j, //Ä¿±êÉ豸Âß¼ºá¡¢×Ý×ø±ê m_Bm.bmWidth£¬1, //ÏÔʾλͼµÄÏñËØ¿í¡¢¸ß¶È &m_MemDC, //ԴλͼÉ豸Çé¾³¶ÔÏó 0£¬m_Bm.bmHeight-i, //ԴλͼµÄÆðʼºá¡¢×Ý×ø±ê m_Bm.bmWidth,1, //ԴλͼµÄÏñËØ¿í¡¢¸ß¶È SRCCOPY); Sleep(20); } //for ( i=0; i<=m_Bm.bmHeight; i++ ) 3. °ÙÒ¶´°Ð§¹û ÔÀí£º½«ÄÚ´æÉ豸Çé¾³¶ÔÏó(ÈçMemDC)ÖеÄλͼÊý¾Ý·Ö³ÉÈô¸É×飬Ȼºó·Ö±ð´ÓµÚÒ»×éµ½×îºóÒ»×é½øÐаáÒÆ£¬µÚÒ»´Î°áÒÆÃ¿×éÖеÚÒ»ÌõɨÃèÏßµ½Ä¿±êÉ豸(ÈçClientDC)ÖдýÏÔʾλͼµÄÏàӦλÖ㬵ڶþ´Î°áÒÆÃ¿×éÖеڶþÌõɨÃèÏߣ¬½Ó×ŵÚÈýÌõ¡¢µÚËÄÌõɨÃèÏß¡£ ³ÌÐòËã·¨£º int i£¬stepi£¬j; stepi=m_Bm.bmHeight/10; for ( i=0; i<=stepi; i++ ) {for ( j=0; j<10; j++ ) ClientDC.StretchBlt( 0£¬j*stepi+i, //Ä¿±êÉ豸Âß¼ºá¡¢×Ý×ø±ê m_Bm.bmWidth£¬1£¬ //ÏÔʾλͼµÄÏñËØ¿í¡¢¸ß¶È &m_MemDC, //ԴλͼÉ豸Çé¾³¶ÔÏó 0£¬j*stepi+i, //ԴλͼµÄÆðʼºá¡¢×Ý×ø±ê m_Bm.bmWidth£¬1£¬ //ԴλͼµÄÏñËØ¿í¡¢¸ß¶È SRCCOPY); Sleep(20); } //for ( i=0; i<=stepi; i++ ) 4. Ëæ»ú»ýľЧ¹û ÔÀí£º½«ÄÚ´æÉ豸Çé¾³¶ÔÏó(ÈçMemDC)ÖеÄλͼÊý¾Ý·Ö³É×ݺáÊ®µÈ·Ý¹²Ò»°Ù×éÊý¾Ý£¬È»ºóËæ»úµØÈ¡³öÕâÒ»°Ù×éÊý¾ÝÖеÄijһ×éÏÔʾµ½Ä¿±êÉ豸(ÈçClientDC)ÖдýÏÔʾλͼµÄÏàӦλÖã¬Èç´Ë·´¸´Ö±µ½ËùÓÐÒ»°Ù×éÊý¾Ý¾ùÏÔʾÍê±ÏΪֹ¡£ ³ÌÐòËã·¨£º int i£¬j£¬stepx£¬stepy£¬dispnum£¬x£¬y; int pxy[10][10]; //ʹÓñ¾Êý×é¼Ç¼ÒÑÏÔʾ¹ýµÄÊý¾Ý×é for ( i=0; i<10; i++ ) for ( j=0; j<10; j++ ) pxy[j]=0; stepx=m_Bm.bmWidth/10; stepy=m_Bm.bmHeight/10; srand( (unsigned)time( NULL ) ); dispnum=0; //¼Ç¼ÒÑÏÔʾ¹ýµÄÊý¾Ý×éµÄ¸öÊý while(1) { x=rand() % 10; y=rand() % 10; if ( pxy[x][y] ) //±¾×éx,yËù´ú±íµÄÊý¾Ý×éÊÇ·ñÒÑÏÔʾ¹ý? continue; pxy[x][y]=1; //±íÃ÷±¾×éx,yËù´ú±íµÄÊý¾Ý×éÒÑÏÔʾ¹ý ClientDC.StretchBlt( x*stepx, y*stepy, //Ä¿±êÉ豸Âß¼ºá¡¢×Ý×ø±ê stepx£¬stepy, //ÏÔʾλͼµÄÏñËØ¿í¡¢¸ß¶È &m_MemDC, //ԴλͼÉ豸Çé¾³¶ÔÏó x*stepx, y*stepy, //ԴλͼµÄÆðʼºá¡¢×Ý×ø±ê stepx£¬stepy, //ԴλͼµÄÏñËØ¿í¡¢¸ß¶È SRCCOPY); dispnum++; if ( dispnum >=100 ) break; Sleep(30); } // while(1) ½á Óï ÒÔÉϳÌÐò´úÂë¾ùÔÚVisual C++ 6.0Öе÷ÊÔͨ¹ý£¬ËùÓÐÆ¬¶Ï¾ù¿É±àд³É¶ÀÁ¢µÄº¯Êý£¬Áé»îʹÓá£Èç¹û¶ÔÒÔÉϼ¸ÖÖÏÔʾЧ¹û½øÐб任£¬ÎÒÃÇ»¹¿ÉÒÔʵÏÖ¶àÖÖÆäËûÌØ¼¼Ð§¹û¡£ [ Last edited by »ÃÓ°ÎÞºÛ on 2006-11-29 at 07:53 ] |
» ²ÂÄãϲ»¶
340Çóµ÷¼Á
ÒѾÓÐ3È˻ظ´
²ÄÁÏר˶ÕÒµ÷¼Á
ÒѾÓÐ4È˻ظ´
0854µç×ÓÐÅÏ¢Çóµ÷¼Á
ÒѾÓÐ6È˻ظ´
0805 316Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´
0854 ¿¼Ñе÷¼Á ÕÐÉúÁË£¡AI ·½Ïò
ÒѾÓÐ17È˻ظ´
¡¾¿¼Ñе÷¼Á¡¿»¯Ñ§×¨Òµ 281·Ö£¬Ò»Ö¾Ô¸ËÄ´¨´óѧ£¬³ÏÐÄÇóµ÷¼Á
ÒѾÓÐ15È˻ظ´
×ÊÔ´Óë»·¾³ µ÷¼ÁÉêÇë(333·Ö)
ÒѾÓÐ7È˻ظ´
306Çó0703µ÷¼ÁÒ»Ö¾Ô¸»ªÖÐʦ·¶
ÒѾÓÐ11È˻ظ´
0703»¯Ñ§µ÷¼Á£¬Çóµ¼Ê¦ÊÕ
ÒѾÓÐ6È˻ظ´
Çóµ÷¼Á
ÒѾÓÐ5È˻ظ´














»Ø¸´´ËÂ¥