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

20151120 수업 WinAPI_7 / 비트맵 뷰어 만들기 - 남수진

by 알 수 없는 사용자 2015. 11. 20.
728x90
반응형

WinAPI

  • 윈도우 전용 함수
    • HANDLE CreateFile(LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES pSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);
      • 파일을 만들고 여는 함수
      • 저수준의 open과 동급
      • 반환값이  INVALID_HANDLE_VALUE이면 에러가 발생한 것
    • ReadFile
      • 저수준의 read와 같다
    • CloseHandle
      • 저수준의 close와 같다
  • 컨트롤
    • 사용자와의 인터페이스를 이루는 도구
      • 명령을 받아들이고 출력 결과를 보여준다
    • 스테틱: 사용자가 수정할 수 없는 컨트롤
    • 에디트: 사용자가 수정할 수 있는 컨트롤

Image(75)

  • 버튼이나 에디트 등의 컨트롤은 윈도우가 만든 또다른 윈도우이므로 내부에 자기의 WM_PAINT를 가지고 있다
    • 무효화 영역이 있다면 알아서 화면을 갱신한다
    • 세팅만 해놓으면 알아서 그린다
    • 가려졌다 나타날 때 다시그려진다면 윈도우의 일종이라 볼 수 있다
      • CreateWindow 함수를 이용해서 만든다
      • Main 윈도우의 자식이므로 WS_CHILD 옵션을 넣어야 한다
  • 비트맵 뷰어를 만들기


    • OnCreate 함수에서 비트맵 파일을 열고 헤더를 읽어온다

Image(76)

    • static과 edit 컨트롤을 활용해서 비트맵 정보 출력
      • CreateWindow를 사용해서 컨트롤을 만든다
        • 첫번째 인자로 어떤 타입의 컨트롤인지 정함
          • static  => L"static"
          • edit => L"edit"
      • static
        • 두번째 인자에는 출력할 문자열을 넣는다
      • 컨트롤에 원하는 문자를 출력하는 방법
        1. 미리 wsprintf로 문자열을 만들어놓고 for문에서 CreateWindow로 출력한다
          • 메모리를 많이 차지한다
        2. SetWindowText를 사용하여 컨트롤의 문자열을 만든다
          • 안쓰는 것이 좋다

Image(77)

728x90