📄 15. 与设备无关的位图.txt
字号:
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 + -