⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 15. 与设备无关的位图.txt

📁 本书介绍了在Microsoft Windows 98、Microsoft Windows NT 4.0和Windows NT 5.0下程序写作的方法
💻 TXT
📖 第 1 页 / 共 5 页
字号:
           Printf (hwnd, TEXT   ("\t.bfSize = %u\r\n"), pbmfh->bfSize) ;
        
           Printf (hwnd, TEXT   ("\t.bfReserved1 = %u\r\n"), pbmfh->bfReserved1) ;
        
           Printf (hwnd, TEXT   ("\t.bfReserved2 = %u\r\n"), pbmfh->bfReserved2) ;
        
           Printf (hwnd, TEXT   ("\t.bfOffBits = %u\r\n\r\n"), pbmfh->bfOffBits) ;
        

                                  // Determine which information structure we have
        

           pbmih = (BITMAPV5HEADER *) (pFile + sizeof (BITMAPFILEHEADER)) ;
        
           switch (pbmih->bV5Size)
        
           {
        
          case   sizeof (BITMAPCOREHEADER):i= 0 ; break ;
        
           case   sizeof (BITMAPINFOHEADER): i= 1 ; szV=
        
TEXT ("i") ;       break ;
        
           case   sizeof (BITMAPV4HEADER):i= 2 ; szV=
        
TEXT ("V4") ;      break ;
        
           case   sizeof (BITMAPV5HEADER):i= 3 ; szV=
        
TEXT ("V5") ;      break ;
        
           default:
        
Printf (hwnd,      TEXT ("Unknown header size of %u.\r\n\r\n"),
        
                          pbmih->bV5Size) ;
        
                  free (pFile) ;
        
                  return ;
        
           }
        

           Printf (hwnd, TEXT ("%s\r\n"), szInfoName[i]) ;
        
                                        // Display the BITMAPCOREHEADER fields
        
           if (pbmih->bV5Size == sizeof (BITMAPCOREHEADER))
        
           {
        
                  pbmch = (BITMAPCOREHEADER *) pbmih ;
        
Printf(hwnd,TEXT("\t.bcSize = %u\r\n"), pbmch->bcSize) ;
        
Printf(hwnd,TEXT("\t.bcWidth = %u\r\n"), pbmch->bcWidth) ;
        
Printf(hwnd,TEXT("\t.bcHeight = %u\r\n"), pbmch->bcHeight) ;
        
Printf(hwnd,TEXT("\t.bcPlanes = %u\r\n"), pbmch->bcPlanes) ;
        
Printf(hwnd,TEXT("\t.bcBitCount = %u\r\n\r\n"), pbmch->bcBitCount) ;
        
     free (pFile) ;
        
     return ;
        
    }
        

                         // Display the BITMAPINFOHEADER fields
        
Printf(hwnd,TEXT("\t.b%sSize = %u\r\n"), szV, pbmih->bV5Size) ;
        
Printf(hwnd,TEXT("\t.b%sWidth = %i\r\n"), szV, pbmih->bV5Width) ;
        
Printf(hwnd,TEXT("\t.b%sHeight = %i\r\n"), szV, pbmih->bV5Height) ;
        
Printf(hwnd,TEXT("\t.b%sPlanes = %u\r\n"), szV, pbmih->bV5Planes) ;
        
Printf(hwnd,TEXT("\t.b%sBitCount=%u\r\n"),szV, pbmih->bV5BitCount) ;
        
Printf(hwnd,TEXT("\t.b%sCompression = %s\r\n"), szV,
        
                        szCompression [min (4, pbmih->bV5Compression)]) ;
        
Printf(hwnd,TEXT("\t.b%sSizeImage= %u\r\n"),szV,
        
pbmih->bV5SizeImage) ;
        
Printf(hwnd,TEXT ("\t.b%sXPelsPerMeter = %i\r\n"), szV,
        
               pbmih->bV5XPelsPerMeter) ;
        
Printf(hwnd,TEXT ("\t.b%sYPelsPerMeter = %i\r\n"), szV,
        
                        pbmih->bV5YPelsPerMeter) ;
        
Printf      (hwnd, TEXT ("\t.b%sClrUsed = %i\r\n"), szV,
        
pbmih->bV5ClrUsed) ;
        
Printf      (hwnd, TEXT ("\t.b%sClrImportant = %i\r\n\r\n"), szV,
        
                 pbmih->bV5ClrImportant) ;
        

           if (pbmih->bV5Size == sizeof (BITMAPINFOHEADER))
        
    {
        
                          if (pbmih->bV5Compression == BI_BITFIELDS)
        
         {
        
Printf (hwnd,TEXT("Red Mask = %08X\r\n"), pbmih->bV5RedMask) ;
        
Printf (hwnd,TEXT ("Green Mask = %08X\r\n"), pbmih->bV5GreenMask) ;
        
Printf (hwnd,TEXT ("Blue Mask  = %08X\r\n\r\n"), pbmih->bV5BlueMask) ;
        
         }
        
                  free (pFile) ;
        
                  return ;
        
    }
        

                                  // Display additional BITMAPV4HEADER fields
        
           Printf (hwnd, TEXT ("\t.b%sRedMask   = %08X\r\n"), szV,
        
                                                        pbmih->bV5RedMask) ;
        
           Printf (hwnd, TEXT ("\t.b%sGreenMask = %08X\r\n"), szV,
        
                                                         pbmih->bV5GreenMask) ;
        
           Printf (hwnd, TEXT ("\t.b%sBlueMask  = %08X\r\n"), szV,
        
                                                         pbmih->bV5BlueMask) ;
        
           Printf (hwnd, TEXT ("\t.b%sAlphaMask = %08X\r\n"), szV,
        
                                                         pbmih->bV5AlphaMask) ;
        
           Printf (hwnd, TEXT ("\t.b%sCSType = %u\r\n"), szV,
        
                                                         pbmih->bV5CSType) ;
        
   Printf (hwnd, TEXT ("\t.b%sEndpoints.ciexyzRed.ciexyzX = %08X\r\n"),
        
                                                 szV, pbmih->bV5Endpoints.ciexyzRed.ciexyzX) ;
        
    Printf (hwnd, TEXT ("\t.b%sEndpoints.ciexyzRed.ciexyzY = %08X\r\n"),
        
                                                 szV, pbmih->bV5Endpoints.ciexyzRed.ciexyzY) ;
        
    Printf (hwnd, TEXT ("\t.b%sEndpoints.ciexyzRed.ciexyzZ = %08X\r\n"),
        
                                                 szV, pbmih->bV5Endpoints.ciexyzRed.ciexyzZ) ;
        
    Printf (hwnd, TEXT ("\t.b%sEndpoints.ciexyzGreen.ciexyzX = %08X\r\n"),
        
                                         szV, pbmih->bV5Endpoints.ciexyzGreen.ciexyzX) ;
        
    Printf (hwnd, TEXT ("\t.b%sEndpoints.ciexyzGreen.ciexyzY = %08X\r\n"),
        
                                                 szV, pbmih->bV5Endpoints.ciexyzGreen.ciexyzY) ;
        
   Printf (hwnd, TEXT ("\t.b%sEndpoints.ciexyzGreen.ciexyzZ = %08X\r\n"),
        
                                                 szV, pbmih->bV5Endpoints.ciexyzGreen.ciexyzZ) ;
        
    Printf (hwnd, TEXT ("\t.b%sEndpoints.ciexyzBlue.ciexyzX = %08X\r\n"),
        
                                          szV, pbmih->bV5Endpoints.ciexyzBlue.ciexyzX) ;
        
    Printf (hwnd, TEXT ("\t.b%sEndpoints.ciexyzBlue.ciexyzY = %08X\r\n"),
        
                                          szV, pbmih->bV5Endpoints.ciexyzBlue.ciexyzY) ;
        
    Printf (hwnd, TEXT ("\t.b%sEndpoints.ciexyzBlue.ciexyzZ = %08X\r\n"),
        
                                          szV, pbmih->bV5Endpoints.ciexyzBlue.ciexyzZ) ;
        
    Printf (hwnd, TEXT ("\t.b%sGammaRed = %08X\r\n"), szV,
        
                                          pbmih->bV5GammaRed) ;
        
    Printf (hwnd, TEXT ("\t.b%sGammaGreen = %08X\r\n"), szV,
        
                                          pbmih->bV5GammaGreen) ;
        
    Printf (hwnd, TEXT ("\t.b%sGammaBlue  = %08X\r\n\r\n"), szV,
        
                                          pbmih->bV5GammaBlue) ;
        

    if (pbmih->bV5Size == sizeof (BITMAPV4HEADER))
        
    {
        
    free (pFile) ;
        
    return ;
        
    }
        

            // Display additional BITMAPV5HEADER fields
        
    Printf        (hwnd,       TEXT ("\t.b%sIntent = %u\r\n"), szV, pbmih->bV5Intent) ;
        
    Printf (hwnd, TEXT ("\t.b%sProfileData = %u\r\n"), szV,
        
                                                  pbmih->bV5ProfileData) ;
        
    Printf (hwnd, TEXT ("\t.b%sProfileSize = %u\r\n"), szV,
        
                                                  pbmih->bV5ProfileSize) ;
        
    Printf (hwnd, TEXT ("\t.b%sReserved = %u\r\n\r\n"), szV,
        
                                                  pbmih->bV5Reserved) ;
        

   free (pFile) ;
        
  return ;
        
}
        

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
        
{
        
    static HWND                   hwndEdit ;
        
    static OPENFILENAME ofn ;
        
    static TCHAR                  szFileName [MAX_PATH], szTitleName [MAX_PATH] ;
        
    static TCHAR                  szFilter[]= TEXT("Bitmap Files (*.BMP)\0*.bmp\0")
        
                                          TEXT("All Files (*.*)\0*.*\0\0") ;
        
   
        
    switch (message)
        
    {
        
    case   WM_CREATE:
        
                   hwndEdit = CreateWindow (TEXT ("edit"), NULL,
        
                                   WS_CHILD | WS_VISIBLE | WS_BORDER |
        
                                   WS_VSCROLL | WS_HSCROLL |
        
                                  ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY,
        
                                   0, 0, 0, 0, hwnd, (HMENU) 1,
        
                                   ((LPCREATESTRUCT) lParam)->hInstance, NULL) ;
        

            ofn.lStructSize               = sizeof (OPENFILENAME) ;
        
            ofn.hwndOwner         = hwnd ;
        
            ofn.hInstance                 = NULL ;
        
            ofn.lpstrFilter               = szFilter ;
        
                  ofn.lpstrCustomFilter = NULL ;
        
                  ofn.nMaxCustFilter    = 0 ;
        
                  ofn.nFilterIndex              = 0 ;
        
                  ofn.lpstrFile                 = szFileName ;
        
                  ofn.nMaxFile                  = MAX_PATH ;
        
                 of

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -