用bmp.CreateBitmap(8,3,1,,1,bits);该如何保存它呢!
不胜感激!

解决方案 »

  1.   

    BOOL WINAPI SaveDDB(HBITMAP hBitmap,TCHAR* szFileName)
    {
    TCHAR szExt[5];
    _splitpath(szFileName,NULL,NULL,NULL,szExt);
    //创建Bitmap类对象
    Bitmap bmp(hBitmap,NULL); CLSID pngClsid;//获取BMP文件的编码方式 if(lstrcmp(szExt,TEXT(".bmp")) == 0){
    if(!GetEncoderClsid(L"image/bmp",&pngClsid))
    return FALSE;  
    bmp.Save(ToWChar(szFileName), &pngClsid, NULL);
    }
    else if (lstrcmp(szExt,TEXT(".jpg")) == 0){
    if(!GetEncoderClsid(L"image/jpeg",&pngClsid))
    return FALSE;  
        bmp.Save(ToWChar(szFileName), &pngClsid, NULL);
    }
    else if (lstrcmp(szExt,TEXT(".gif")) == 0){
    if(!GetEncoderClsid(L"image/gif",&pngClsid))
    return FALSE;  
        bmp.Save(ToWChar(szFileName), &pngClsid, NULL);
    }
    else if (lstrcmp(szExt,TEXT(".png")) == 0){
    if(!GetEncoderClsid(L"image/png",&pngClsid))
    return FALSE;  
        bmp.Save(ToWChar(szFileName), &pngClsid, NULL);
    }
    else if (lstrcmp(szExt,TEXT(".tif")) == 0){
    if(!GetEncoderClsid(L"image/tiff",&pngClsid))
    return FALSE;  
        bmp.Save(ToWChar(szFileName), &pngClsid, NULL);
    }
    else
    return FALSE;
    return TRUE;
    }