我已经有一个算法了,可是我看了一下,不能够保存成24位的,请大哥大嫂指教。分不够,我给,我还有很多。

解决方案 »

  1.   

    BOOL CDib::Save( const char *pszFilename )
    { // If we have no data, we can't save.
    if( m_pDib == NULL )
    return( FALSE ); CFile cf; // Attempt to create the file.
    if( !cf.Open( pszFilename,
    CFile::modeCreate | CFile::modeWrite ) )
    return( FALSE );

    // Write the data.
    try{ // First, create a BITMAPFILEHEADER
    // with the correct data.
    BITMAPFILEHEADER BFH;
    memset( &BFH, 0, sizeof( BITMAPFILEHEADER ) );
    BFH.bfType = 'MB';
    BFH.bfSize = sizeof( BITMAPFILEHEADER ) + m_dwDibSize;
    BFH.bfOffBits = sizeof( BITMAPFILEHEADER ) +
    sizeof( BITMAPINFOHEADER ) +
    m_nPaletteEntries * sizeof( RGBQUAD ); // Write the BITMAPFILEHEADER and the
    // Dib data.
    cf.Write( &BFH, sizeof( BITMAPFILEHEADER ) );
    cf.Write( m_pDib, m_dwDibSize );
    } // If we get an exception, delete the exception and
    // return FALSE.
    catch( CFileException *e ){
    e->Delete();
    return( FALSE );
    } return( TRUE );
    }
      
      

  2.   

    看一下,用VC进行屏幕截取编程 
    http://www.vckbase.com/document/viewdoc.asp?id=181
    把程序稍微改一下,就可以了
      

  3.   

    我有个疑问,如何设定它存为24位?
    我看 gzshd(郁闷) ( ) 没有出现,也许问得很简单
    请赐教!
      

  4.   

    类似问题,请关注^_^
    http://expert.csdn.net/Expert/topic/2164/2164082.xml?temp=.3125116