ºÍλͼÏñËØÊý¾ÝËIJ¿·Ö¡£´¦ÀíλͼʱҪ¸ù¾ÝÎļþµÄÕâЩ½á¹¹µÃµ½Î»Í¼Îļþ´óС¡¢Î»Í¼µÄ¿í¡¢¸ß¡¢ÊµÏÖµ÷É«°å¡¢µÃµ½Î»Í¼ÏñËØÖµµÈµÈ¡£ÕâÀïҪעÒâµÄÒ»µãÊÇÔÚBMPλͼÖУ¬Î»Í¼µÄÿÐÐÏñËØÖµÒªÌî³äµ½Ò»¸öËÄ×ֽڱ߽磬¼´Î»Í¼Ã¿ÐÐËùÕ¼µÄ´æ´¢³¤¶ÈΪËÄ×ֽڵı¶Êý£¬²»×ãʱ½«¶àÓàλÓÃ0Ìî³ä¡£
ÓÐÁËÉÏÊö֪ʶ£¬¿ÉÒÔ¿ªÊ¼±àдͼÏñ´¦ÀíµÄ³ÌÐòÁË£¬¹ØÓÚÔÚVCµÄ¿ª·¢Æ½Ì¨ÉÏÈçºÎ¿ª·¢³ÌÐòµÄÎÊÌâÕâÀï²»ÔÙ׸Êö£¬±ÊÕß¼Ù¶¨¶ÁÕß¶¼¾ßÓÐÒ»¶¨µÄVC¿ª·¢¾Ñé¡£ÔÚ¿ª·¢¸ÃͼÏñ´¦Àí³ÌÐòµÄ¹ý³ÌÖУ¬±ÊÕßûÓвÉÓÃÃæÏò¶ÔÏóµÄ·½·¨£¬ËäÈ»ÃæÏò¶ÔÏóµÄ·½·¨¿ÉÒÔ½«Êý¾Ý·â×°ÆðÀ´£¬±£»¤ÀàÖеÄÊý¾Ý²»ÊÜÍâ½çµÄ¸ÉÈÅ£¬Ìá¸ßÊý¾ÝµÄ°²È«ÐÔ£¬µ«ÊÇÕâÖÖ°²È«ÐÔÊÇÒÔ½µµÍ³ÌÐòµÄÖ´ÐÐЧÂÊΪ´ú¼ÛµÄ£¬Îª´Ë£¬ÎÒÃdzä·ÖÀûÓÃÁ˳ÌÐòµÄÎĵµÊÓͼ½á¹¹£¬ÔÚ³ÌÐòÖÐÖ±½ÓʹÓÃÁËһЩAPIº¯ÊýÀ´²Ù×÷ͼÏñ¡£ÔÚ΢ÈíµÄ MSDNÖÐÓÐÒ»¸öÃûΪDiblookµÄÀý×Ó£¬¸ÃÀý×ÓÑÝʾÁËÈçºÎ²Ù×÷Dibλͼ£¬ÓÐÐËȤµÄ¶ÁÕß¿ÉÒԲο¼Ò»Ï£¬ÏàÐÅÒ»¶¨»áÓÐËùÊÕ»ñ¡£
Æô¶¯Visual C++£¬Éú³ÉÒ»¸öÃûΪDibµÄ¶àÎĵµ³ÌÐò£¬½«CDibViewÀàµÄ»ùÀàÉèΪCscrollViewÀ࣬ÕâÑù×÷µÄÄ¿µÄÊÇΪÁËÔÚÏÔʾλͼʱ֧³Ö¹ö¶¯Ìõ£¬ÁíÍâÔÚ´¦ÀíͼÏñÓ¦ÓóÌÐòµÄÎĵµÀࣨCDibDoc.h£©ÖÐÉùÃ÷ÈçϺ꼰¹«ÓбäÁ¿£º
#define WIDTHBYTES(bits) (((bits) + 31) / 32 * 4)//¼ÆËãͼÏñÿÐÐÏóËØËùÕ¼µÄ×Ö½ÚÊýÄ¿£»
HANDLE m_hDIB;//´æ·ÅλͼÊý¾ÝµÄ¾ä±ú£»
CPalette* m_palDIB;//Ö¸Ïòµ÷É«°åCpaletteÀàµÄÖ¸Õ룻
CSize m_sizeDoc;//³õʼ»¯ÊÓͼµÄ³ß´ç£¬¸Ã³ß´çΪλͼµÄ³ß´ç£»
×îºó½«³ÌÐòµÄ×Ö·û´®±íÖеÄ×Ö·û´®×ÊÔ´IDR_DibTYPEÐÞ¸ÄΪ£º
"\\nDib\\nDib\\nDib Files(*.bmp;*.dib)\\n.bmp\\nDib.Document\\nDib Document"¡£ÕâÑù×÷µÄÄ¿µÄÊÇΪÁËÔÚ³ÌÐòÎļþ¶Ô»°¿òÖпÉÒÔÑ¡ÔñBMP»òDIB¸ñʽµÄλͼÎļþ¡£
1¡¢ ¶ÁÈ¡»Ò¶ÈBMPλͼ
¿ÉÒÔ¸ù¾ÝBMPλͼÎļþµÄ½á¹¹£¬²Ù×÷BMPλͼÎļþ²¢¶ÁÈëͼÏñÊý¾Ý£¬Îª´ËÎÒÃdzä·ÖÀûÓÃÁËVCµÄÎĵµÊÓͼ½á¹¹£¬ÖØÔØÁËÎĵ²ÀàµÄ OnOpenDocument£¨£©º¯Êý£¬ÕâÑùÓû§¾Í¿ÉÒÔÔÚ×Ô¶¯Éú³É³ÌÐòµÄ´ò¿ªÎļþ¶Ô»°¿òÖÐÑ¡ÔñËùÒª´ò¿ªµÄλͼÎļþ£¬È»ºó³ÌÐò½«×Ô¶¯µ÷Óøú¯ÊýÖ´ÐжÁÈ¡Êý¾ÝµÄ²Ù×÷¡£¸Ãº¯ÊýµÄʵÏÖ´úÂëÈçÏÂËùʾ£º
BOOL CDibDoc::OnOpenDocument(LPCTSTR lpszPathName)
{
LOGPALETTE *pPal;//¶¨ÒåÂß¼µ÷É«°åÖ¸Õ룻
pPal=new LOGPALETTE;//³õʼ»¯¸ÃÖ¸Õ룻
CFile file;
CFileException fe;
if (!file.Open(lpszPathName, CFile::modeRead | CFile::shareDenyWrite, &fe))
ËÑË÷¡°diyifanwen.net¡±»ò¡°µÚÒ»·¶ÎÄÍø¡±¼´¿ÉÕÒµ½±¾Õ¾Ãâ·ÑÔĶÁÈ«²¿·¶ÎÄ¡£Êղر¾Õ¾·½±ãÏ´ÎÔĶÁ£¬µÚÒ»·¶ÎÄÍø£¬Ìṩ×îиßÖнÌÓýVC++Êý×ÖͼÏñ´¦Àí±à³Ì(8)È«ÎÄÔĶÁºÍwordÏÂÔØ·þÎñ¡£
Ïà¹ØÍÆ¼ö£º