Znn3bq.jpeg
ÉÇÍ·´óѧº£Ñó¿ÆÑ§½ÓÊܵ÷¼Á
²é¿´: 149  |  »Ø¸´: 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 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] ¿¼Ñе÷¼Á +11 ³¤¹­°Á 2026-04-13 12/600 2026-04-13 22:48 by pies112
[¿¼ÑÐ] 0856ר˶Çóµ÷¼Á Ï£ÍûÊÇaÇøÔºÐ£ +24 ºÃºÃÐÝÏ¢ºÃ²»ºÃ 2026-04-09 27/1350 2026-04-13 22:22 by pies112
[¿¼ÑÐ] 293Çóµ÷¼Á +16 ÎÒ°®¸ßÊý¸ßÊý°®Î 2026-04-12 18/900 2026-04-13 21:47 by ѧԱJpLReM
[¿¼ÑÐ] Ò»Ö¾Ô¸ÏôóÉúÎïѧ332Çóµ÷¼Á +11 ³Ø³Ø³Ø³Ø³Ø³Ø 2026-04-08 11/550 2026-04-13 14:10 by ¿ÆÑÐÂÛ
[¿¼ÑÐ] 211±¾¿Æ²ÄÁÏ»¯¹¤Çóµ÷¼Á +17 YHLAH 2026-04-11 20/1000 2026-04-13 08:46 by Sammy2
[¿¼ÑÐ] Çóµ÷¼Á +9 ³Ô¿Ú±ù¼¤Áè 2026-04-07 9/450 2026-04-13 08:46 by ×ÏêØ×ÏÆå
[¿¼ÑÐ] 303Çóµ÷¼Á +14 SereinQ 2026-04-10 15/750 2026-04-11 20:43 by À¶ÔÆË¼Óê
[¿¼ÑÐ] µ÷¼ÁÇóÖú +6 ¹ûÈ»ÓÐÎÒ 2026-04-11 7/350 2026-04-11 16:22 by Ã÷Ô´ËʱÓÐ
[¿¼ÑÐ] Çóµ÷¼Á£¬Ò»Ö¾Ô¸´óÁ¬Àí¹¤´óѧ354·Ö +5 ÓêÉùÓàÉú 2026-04-11 6/300 2026-04-11 16:12 by ÓêÉùÓàÉú
[¿¼ÑÐ] Çóµ÷¼Á +3 θ¾·ÂÎÀÛÁË 2026-04-11 5/250 2026-04-11 14:13 by luhong1990
[¿¼ÑÐ] ũѧ0904 312Çóµ÷¼Á +6 Say Never 2026-04-10 6/300 2026-04-11 10:33 by wwj2530616
[¿¼ÑÐ] 085402ͨÐŹ¤³Ìµ÷¼Á£¬ÓÐ4Ïîѧ¿Æ¾ºÈü¹ú½±£¨µçÈü¹ú¶þ£©£¬Ë¶Ê¿Ñо¿Éúµ÷¼Á×Ô¼öÐÅ¡£ +5 mÓÀo²»vÑÔoÆúm 2026-04-09 5/250 2026-04-11 09:33 by zhq0425
[¿¼ÑÐ] ²ÄÁÏÀà284µ÷¼Á +40 Ïë»»ÊÖ»ú²»Ïë½âÊ 2026-04-08 48/2400 2026-04-10 23:28 by 314126402
[¿¼ÑÐ] Ò»Ö¾Ô¸±±Àí¹¤298Ó¢Ò»Êý¶þÒÑÉϰ¶£¬¸Ðл¸÷λÀÏʦ +14 Reframe 2026-04-10 16/800 2026-04-10 23:07 by caotw2020
[¿¼ÑÐ] 0858Çóµ÷¼Á 5+5 Gky09300550£¬ 2026-04-10 8/400 2026-04-10 19:13 by chemisry
[¿¼ÑÐ] 085800 ÄÜÔ´¶¯Á¦Çóµ÷¼Á +6 °¢biu°¡°¡°¡°¡°¡ 2026-04-10 6/300 2026-04-10 15:03 by hemengdong
[¿¼ÑÐ] Òѵ÷¼Á +18 ²ñ¿¤Ã¨_ 2026-04-09 19/950 2026-04-09 22:10 by ²ñ¿¤Ã¨_
[¿¼ÑÐ] ¿¼Ñе÷¼Á +13 ±ù±ù£¬£¬£¬ 2026-04-07 13/650 2026-04-09 17:01 by Lilly_Li
[¿¼ÑÐ] Èí¼þ¹¤³ÌÇóµ÷¼Á22Èí¹¤296·ÖÇóµ÷¼Á£¬½ÓÊÜ¿çµ÷ +4 yangchen2017 2026-04-08 5/250 2026-04-08 21:56 by ÍÁľ˶ʿÕÐÉú
[¿¼ÑÐ] 293·ÖÇóµ÷¼Á£¬ÍâÓïΪ¶íÓï +7 ¼ÓÒ»Ò»¾Å 2026-04-07 10/500 2026-04-08 20:14 by yutian743
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û