일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- C
- go
- File
- window
- package
- mutex
- 영화
- c++
- 리뷰
- GO 언어
- 책
- API
- Sync
- go언어
- write
- FOR
- windows
- Linux
- Close
- Python
- tcp
- Callback
- channel
- install
- Golang
- json
- range
- JavaScript
- bitcoin
- http
- Today
- Total
목록DC (2)
Code Habit
StretchDIBits 함수를 사용하여 이미지 파일을 화면상(윈도우)에 출력할 수 있다. VOID CTestCtrl::OnPaint( HDC /*hDC*/ ) { CPaintDC dc( m_hWnd );// 함수 종료시 지가 알아서 release 함 CDC mDC; CBitmap mBitmap; CBitmap mBitmap_old; CRect rect; GetClientRect(&rect); mDC.CreateCompatibleDC(dc); mBitmap.CreateCompatibleBitmap(dc, rect.right, rect.bottom); mBitmap_old = mDC.SelectBitmap(mBitmap); int width = rect.Width(); int height = rect.He..
화면에 그림을 그리는 것은 생각보다 부하가 심하다. 만약 화면 DC를 가져와 직접 그린다면 그림을 그리는 도중 무수한 깜박임이 발생한다. 이를 위해 우리는 더블 버퍼링을 활용할 수 있다. 더블 버퍼링이란 메모리 DC를 생성해 여기에 미리 그림을 그린 후 실제 출력할 화면 DC에 고속 복사를 하는 것이다. 실제 이렇게 화면을 그릴 경우 화면 깜박임이 없어지는 것을 볼 수 있다. 아래는 더블 버퍼링을 활용한 예제이다. GetClientRect(&rect); HDC hdc = GetDC(hwnd); // 그림 그릴 윈도우의 DC 가져오기 HDC hMemdc = CreateCompatibleDC(hdc); // 화면dc(그릴 윈도우) 기반 메모리 DC생성 HBITMAP hBitmap = CreateCompati..