²é¿´: 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 ]
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

×öÈËÒªºñµÀ°¡£¡ºñµÀ°¡£¡
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ zsglly µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 0854µç×ÓÐÅÏ¢Çóµ÷¼Á +5 ¦Á____ 2026-03-22 6/300 2026-03-24 17:42 by wmk
[¿¼ÑÐ] 0703»¯Ñ§µ÷¼Á£¬Çóµ¼Ê¦ÊÕ +6 ÌìÌìºÃÔËÀ´Éϰ¶° 2026-03-24 6/300 2026-03-24 17:19 by dick_runner
[¿¼ÑÐ] Ò»Ö¾Ô¸ÄϺ½²ÄÁÏר317·ÖÇóµ÷¼Á +5 ըѽըѽըÊíÌõ 2026-03-23 5/250 2026-03-24 16:52 by ÐÇ¿ÕÐÇÔÂ
[¿¼ÑÐ] 274Çóµ÷¼Á +4 ¹Ë¾ÅóÏҪǫÐé 2026-03-24 4/200 2026-03-24 16:28 by barlinike
[¿¼ÑÐ] ²ÄÁÏÓ뻯¹¤328·Öµ÷¼Á +4 ¡££¬¡££¬¡££¬¡£i 2026-03-23 4/200 2026-03-24 11:03 by 544594351
[¿¼ÑÐ] Çó²ÄÁÏ£¬»·¾³×¨Òµµ÷¼Á +3 18567500178 2026-03-18 3/150 2026-03-23 23:50 by ÈÈÇéɳĮ
[¿¼ÑÐ] ²ÄÁÏרҵÇóµ÷¼Á +11 hanamiko 2026-03-18 11/550 2026-03-23 23:12 by peike
[¿¼ÑÐ] 265Çóµ÷¼Á +10 ÁºÁºÐ£Ð£ 2026-03-17 10/500 2026-03-23 21:17 by Ò»ÇÐOK
[¿¼ÑÐ] ÉϺ£µçÁ¦´óѧ²ÄÁÏ·À»¤ÓëвÄÁÏÖØµãʵÑéÊÒÕÐÊÕµ÷¼ÁÑо¿Éú£¨²ÄÁÏ¡¢»¯Ñ§¡¢µç»¯Ñ§£¬»·¾³£© +3 ÎÒ°®Ñ§µç³Ø 2026-03-23 3/150 2026-03-23 17:16 by AZMK
[¿¼ÑÐ] 276Çóµ÷¼Á +3 YNRYG 2026-03-21 4/200 2026-03-23 08:31 by ×íÔÚ·çÀï
[¿¼ÑÐ] 324Çóµ÷¼Á +6 luckyѽѽѽѼ 2026-03-20 6/300 2026-03-22 16:01 by ColorlessPI
[¿¼ÑÐ] Çóµ÷¼Á +3 13341 2026-03-20 3/150 2026-03-21 18:28 by ѧԱ8dgXkO
[¿¼ÑÐ] Çóµ÷¼Á +3 .m.. 2026-03-21 4/200 2026-03-21 16:25 by barlinike
[¿¼ÑÐ] 332Çóµ÷¼Á +4 ydfyh 2026-03-17 4/200 2026-03-21 02:20 by JourneyLucky
[¿¼ÑÐ] 085700×ÊÔ´Óë»·¾³308Çóµ÷¼Á +12 īīĮ 2026-03-18 13/650 2026-03-21 01:42 by JourneyLucky
[¿¼ÑÐ] 324·Ö 085600²ÄÁÏ»¯¹¤Çóµ÷¼Á +4 llllkkkhh 2026-03-18 4/200 2026-03-21 01:24 by JourneyLucky
[¿¼ÑÐ] 317Çóµ÷¼Á +5 Éê×ÓÉêÉê 2026-03-19 9/450 2026-03-20 22:26 by JourneyLucky
[¿¼ÑÐ] AÇøÏß²ÄÁÏѧµ÷¼Á +5 ÖÜÖÜÎÞ¼« 2026-03-20 5/250 2026-03-20 21:33 by laoshidan
[¿¼ÑÐ] 295¸´ÊÔµ÷¼Á +8 ¼òľChuFront 2026-03-19 8/400 2026-03-20 20:44 by zhukairuo
[¿¼ÑÐ] 353Çóµ÷¼Á +3 À­¹³²»Ðí±ä 2026-03-20 3/150 2026-03-20 19:56 by JourneyLucky
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û