본문 바로가기
코스웨어/15년 스마트컨트롤러

20151120 임현수 업무일지 WIN32API #7 비트맵 정보 출력

by 알 수 없는 사용자 2015. 11. 22.
728x90
반응형
■ Win32 api


■ 파일 입출력

파일을 만들거나 열때 CreateFile함수를 호출한다.

저수준으로 따지면 open함수와 동급이라고 볼 수 있다.

ReadFile도 저수준 Read와 동급이다.

이 함수들은 윈도우 전용 함수이다.

닫음은 CloseHandle이다.

비트맵띄우는 프로그램 만들거다.

  HANDLE hFile;
  hFile = CreateFile(L"1.bmp"
            ,GENERIC_READ
            ,0
            ,NULL
            ,OPEN_EXISTING
            ,FILE_ATTRIBUTE_NORMAL
            ,NULL);

  if (INVALID_HANDLE_VALUE == hFile)
  {
    MessageBox(hWnd, TEXT("파일을 열 수 없습니다."), TEXT("에러"), MB_OK);
    return 0;
  }
  else
  {
    CloseHandle(hFile);
    MessageBox(hWnd, TEXT("파일이 성공적으로 열렸습니다."), TEXT("성공"), MB_OK);
  }

  ReleaseDC(hWnd, hdc);
  return 0;

윈도우가 만든 윈도우이기 때문에 안에 paint를 처리한다.
윈도우들은 셋팅만 해놓으면 알아서 그린다.
버튼, 체크박스등이 모두 윈도우이다.

■ 컨트롤 사용 연습



■ 파일정보 출력 틀 만들기

void printBMPInfo(BITMAPFILEHEADER* stpFH, BITMAPINFOHEADER* stpIH)
{
  int iCntY;
  WCHAR *ucTitle[15=
  {
    L"Magic Number",
    L"Size of File",
    L"Data Position",
    L"Size of BITMAPINFOHEADER",
    L"Width of Image",
    L"Height of Image",
    L"Bit Plane number",
    L"Bit Count",
    L"Compression",
    L"Size of Image",
    L"Resolution of Width",
    L"Resolution of Height",
    L"Number of Used Color",
    L"Index of Important Color"
  };

  for (iCntY = 0; iCntY < 14; ++iCntY)
  {
    CreateWindow(TEXT("static")
      , ucTitle[iCntY]
      , WS_CHILD | WS_VISIBLE
      , XPOS
      , YPOS*(iCntY + 1) + (YGAP*iCntY)
      , SWIDTH
      , SHEIGHT
      , hWnd
      , (HMENU)-1
      , g_hInst
      , NULL);

    CreateWindow(TEXT("edit")
      , TEXT("test")
      , WS_CHILD | WS_VISIBLE | WS_BORDER | ES_READONLY
      , XPOS + SWIDTH + XGAP
      , YPOS*(iCntY + 1) + (YGAP*iCntY)
      , SWIDTH
      , SHEIGHT
      , hWnd
      , (HMENU)-1
      , g_hInst
      , NULL);
  }

  return;
}


SetWindowText ( hHandle, L "MB오케이" );
어떤 윈도우던지 문자를 바꿀 수 있다.

비트맵 정보를 읽어와서 뿌리는 방법
1. sprintf로 수작업해놓은다음에 for문 돌리는방법
2. 핸들러 배열을 만들어 놓고 출력하는 방법


728x90