¹ÈËÑIT·þÎñ   ¼¼ÊõÎÄÕÂ
Ê×Ò³ | ÌØ»ÝÌ×²Í | ÓòÃûÉêÇë | Ö÷»ú¿Õ¼ä | ÆóÒµGÓÊÏä | ÍøÕ¾½¨Éè | ÍøÕ¾ÍÆ¹ã | ÓʾÖϵͳ | ¹ÈËÑÈí¼þ | ¹ÈËÑÍÆ¹ã
ÌØ

±ð

ÍÆ

¼ö
  ÄúËùÔÚµÄλÖà |  Ïà¹Ø¼¼ÊõÎÄÕ ->  Java/J2EE/JSP ->  ÕýÎÄ
ÎÒϲ»¶Ê¹ÓÃintellij ideaµÄ25¸öÀíÓÉ
http://www.aguso.com¡¡2007-11-18 03:10:42¡¡¹ÈËÑIT·þÎñ
  GoogleÌṩµÄ¹ã¸æ

ÕýÈ·ÏÔʾ͸Ã÷λͼ

ÍøÉÏÒѾ­ÓÐÁ˲»ÉٵعØÓÚÈç¹û͸Ã÷ÏÔʾλͼµÄÎĵµ£¬µ«ÊÇÕâЩÎÄÕÂÖÐÓÐÒ»¸ö·Ç³£´óµÄȱÏÝ£¬Èç¹ûµ±Ò»¸öλͼ²¢²»ÊÇ24λɫ²ÊµÄλͼʱ£¬»»¾ä»°Ëµ£¬µ±Ò»¸öλͼÊÇ2λ»ò4λ»ò8λµÄλͼʱ£¬ÓÉÓÚÕâЩλͼʹÓõ÷É«°åÐÅÏ¢£¬Ê¹ÓÃÒ»°ãµÄ͸Ã÷ÏÔʾλͼµÄ·½·¨£¬½«»á³öÏÖÉ«²Ê´íÂÒµÄÏÖÏ󣬲»ÄÜÕýÈ·µØÏÔʾһ¸ö͸Ã÷µÄλͼ¡£

ÎÒÔÚǰÈËÎĵµµÄ»ù´¡ÉÏ£¬¶ÔËûÃǵÄÏÔʾ·½·¨×öÁËһЩÐÞÕý£¬Ôò¿ÉÒÔÕýÈ·µØÏÔʾÈκÎλÊýÉ«²ÊµÄ͸Ã÷λͼ¡£ÏÂÃæµÄDrawTransparentBmpº¯ÊýÊÇÒ»¸öÍêÕûµÄÕýÈ·ÏÔʾ͸Ã÷λͼµÄº¯Êý£¬Æä¸÷²ÎÊý˵Ã÷ÈçÏ£º
HDC hdc£ºÄ¿±êHDC£¬¼´½«Òª»æÖÆÎ»Í¼µÄHDC
HBITMAP hbmp£ºÎ»Í¼µÄ¾ä±ú£¬´Ëλͼ¿ÉÒÔÊÇ2λ¡¢4λ¡¢8λ¡¢16λ¡¢24λλͼ¡£
RECT &rect£º½«Òª»æÖƵÄÇøÓò
COLORREF colorTrans£ºÍ¸Ã÷É«

º¯ÊýÇåµ¥ÈçÏ£º
BOOL DrawTransparentBmp(HDC hdc, HBITMAP hbmp, RECT &rect, COLORREF colorTrans)
{
 HDC dcImage, dcTrans, dcImage24;
 HBITMAP holdbmp24, hbmp24;
 HBITMAP holdbmp;
 HBITMAP hbmpTrans, holdbmpTrans;

 // ´´½¨ÄÚ´æDC
 dcImage = CreateCompatibleDC(hdc);
 dcTrans =  CreateCompatibleDC(hdc);
 dcImage24 = CreateCompatibleDC(hdc);

 if (dcImage == NULL || dcTrans == NULL || dcImage24 == NULL)
  // Error: cant create compatible dc
  return FALSE;
 // »ñµÃͼÏñÊôÐÔ
 BITMAP bmp;
 GetObject(hbmp, sizeof(bmp), &bmp);

 // Ñ¡ÔñͼƬµ½dcImageÖÐ
 holdbmp = (HBITMAP)SelectObject(dcImage, hbmp);

 // ´´½¨24ɫλͼ£¬ÕâÑù²ÅÄÜÕýÈ·µØÏÔʾ´øÍ¸Ã÷É«µÄλͼ
 LPBITMAPINFO lpBmpInfo;
 
 lpBmpInfo = (BITMAPINFO*) new BYTE[sizeof(BITMAPINFOHEADER)];
 
 lpBmpInfo->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
 lpBmpInfo->bmiHeader.biPlanes = 1;
 lpBmpInfo->bmiHeader.biBitCount = nBitCount;
 lpBmpInfo->bmiHeader.biCompression = BI_RGB;
 lpBmpInfo->bmiHeader.biSizeImage = 0;
 lpBmpInfo->bmiHeader.biClrUsed = 0;
 
 lpBmpInfo->bmiHeader.biWidth = bmp.bmWidth;
 lpBmpInfo->bmiHeader.biHeight = bmp.bmHeight;
 
 HDC dc = CreateCompatibleDC(NULL);
 
 // ´´½¨ÐÂͼƬ
 LPVOID lpBits;
 hbmp24 =::CreateDIBSection(dc,lpBmpInfo,DIB_RGB_COLORS,
  &lpBits,NULL,0);
 
 DeleteDC(dc);
 delete lpBmpInfo;

 if (hbmp24 == NULL)
  // Error
  return FALSE;

 holdbmp24 = (HBITMAP)SelectObject(dcImage24, hbmp24);

 // ½«Ô­Í¼Æ¬»æÖƵ½24ɫλͼÖÐ
 BitBlt(dcImage24, 0, 0, bmp.bmWidth, bmp.bmHeight, dcImage, 0, 0, SRCCOPY);

 // ´´½¨Maskλͼ
 hbmpTrans = CreateBitmap(bmp.bmWidth, bmp.bmHeight, 1, 1, NULL);
 if (hbmpTrans == NULL)
  // Error
  return FALSE;

 // Ñ¡Ôñmaskλͼµ½dcTransÖÐ
 holdbmpTrans = (HBITMAP)SelectObject(dcTrans, hbmpTrans);
 
 // ´´½¨ÑÚÂëͼÏñ£¨»ùÓÚÖ¸¶¨µÄÑÕÉ«£©
 COLORREF oldbkcolor = SetBkColor(dcImage24, colorTrans);
 BitBlt(dcTrans, 0, 0, bmp.bmWidth, bmp.bmHeight, dcImage24, 0, 0, SRCCOPY);
 
 SetBkColor(dcImage24, RGB(0,0,0));
 COLORREF oldtextcolor = SetTextColor(dcImage24, RGB(255,255,255));
 BitBlt(dcImage24, 0, 0, bmp.bmWidth, bmp.bmHeight, dcTrans, 0, 0, SRCAND);

 // È¥³ýÖ¸¶¨µÄÑÕÉ«
 COLORREF crOldBack, crOldText;
 crOldBack = SetBkColor(hdc, RGB(255,255,255));
 crOldText = SetTextColor(hdc, RGB(0,0,0));

 // ÏÔʾ͸Ã÷λͼ
 StretchBlt(hdc, rect.left, rect.top, rect.right - rect.left,rect.bottom - rect.top,
  dcTrans, 0, 0, bmp.bmWidth, bmp.bmHeight, SRCAND);
 StretchBlt(hdc, rect.left, rect.top, rect.right - rect.left,rect.bottom - rect.top,
  dcImage24, 0, 0, bmp.bmWidth, bmp.bmHeight, SRCPAINT);
 
 // »Ö¸´ÉèÖü°ÊÍ·Å×ÊÔ´
 SelectObject(dcImage, holdbmp);
 
 SelectObject(dcImage24, holdbmp24);
 SelectObject(dcTrans, holdbmpTrans);

 DeleteObject(hbmp24);
 DeleteObject(hbmpTrans);

 SetBkColor(hdc, crOldBack);
 SetTextColor(hdc, crOldText);
 
 SetBkColor(dcImage24, oldbkcolor);
 SetTextColor(dcImage24, oldtextcolor);

 DeleteDC(dcImage);
 DeleteDC(dcImage24);
 DeleteDC(dcTrans);

 return TRUE;
}

°¢ÎÄ
http://tulipstudio.yeah.net


±¾ÎĵØÖ·£ºhttp://www.newbooks.com.cn/info/32474.html
 
¡¾´òÓ¡¡¿ ¡¾¹Ø±Õ¡¿ 
  ·ÖÀàÐÅÏ¢
  ÈȵãÐÂÎÅ
2 ¶È¹ýÀ§ÄÑʱÆÚ 08ÄêµÚÈý¼¾Ó®Àû
2 Ï൱¶àµÄÆóÒµ¹ºÂòVistaÐí¿ÉÖ¤µ«»¹Ã»Ê¹ÓÃ
2 ºê»ùÔ¤¼ÆÍ¶Èë1.2ÒÚÃÀÔªÔÞÖú°ÂÔË»á
2 Vista IPv6¼¼ÊõÆØ°²È«Â©¶´£¬ÔâºÚ¿Í¹¥»÷
2 Ó¢ÌØ¶û08ÄêÊ׿îÈüÑïË«ºË1ÔÂÉÏÊÐ
2 ÐÂÎż¯ÍÅĬ¶à¿Ë½Ó°àÈ˸¡³öË®Ãæ
2 ÊýÂëÏà»ú°®¹úÕßΪÏû·ÑÕß½ÚÊ¡60ÒÚÔª
2 "Öйú×î¾ß¾ºÕùÁ¦º£ÍâÉÏÊй«Ë¾"£­¿ÕÖÐÍø
¶«·½Ã÷Öé
ÃÀͼ£º¶«·½Ã÷Öé
ÉÏÍøºÃ°ïÊÖ£¬ÏÂÔØ²»Öж¾µÄä¯ÀÀÆ÷
ÏÂÔØÉÏÍø²»Öж¾µÄä¯ÀÀÆ÷
 ¾«²ÊרÌâ
¡¤ÆóÒµÍøÕ¾½¨Éè ¡¤×¨ÒµÍøÕ¾½¨Éè
¡¤ÓòÃû×¢²á ¡¤ÖÐÎÄÓòÃû×¢²á
¡¤ÍøÕ¾¿Õ¼ä ¡¤ÐéÄâÖ÷»ú
¡¤ÆóÒµÓÊÏä ¡¤ÆóÒµGÓÊ
¡¤ÈçºÎ½¨ÉèÆóÒµÍøÕ¾ ¡¤ÕÒÉÌ»ú-ÓÃÒ×ËÑÍø
¡¤ÆóÒµÐÅÏ¢Ãâ·Ñ²éѯ ¡¤ÆóÒµ²úÆ·Ãâ·ÑÐû´«
¡¤×¢²áCNÓòÃûÖ»Ðè1Ôª ¡¤¹ú¼ÊÖÐÎÄÓòÃû×¢²á
¡¤Linux ÐéÄâÖ÷»ú ¡¤Windows ÐéÄâÖ÷»ú
¡¤ÉêÇëÃâ·ÑÓÊÏä ¡¤Ãâ·ÑÆóÒµGÓÊÏäÉêÇë
¸ñ¶·ÌìÍõ2000ÍþÁ¦¼ÓÇ¿°æ
ÓÎÏ·£º¸ñ¶·ÌìÍõ2000ÍþÁ¦¼ÓÇ¿°æ
ÉÏÍøºÃ°ïÊÖ£¬ÏÂÔØ²»Öж¾µÄä¯ÀÀÆ÷
ÈÃÄúµÄÍøÕ¾¿ªÊ¼»ñÈ¡ÊÕÈë
 ×îÐÂÎÄÕÂ
Ê×Ò³ | ¹ØÓÚÎÒÃÇ | ÁªÏµ·½Ê½ | ¹ÈËѶ¯Ì¬ | Ö§¸¶ÖÐÐÄ | ÓÑÇéÁ´½Ó | ¹¤×÷»ú»á | ÍøÕ¾µØÍ¼ | Òâ¼û·´À¡
© 2007 ¹ÈËÑ-IT·þÎñ