Chromatic-Hwi / C_PlusPlus_MFC

1 stars 0 forks source link

Image Viewer #8

Open Chromatic-Hwi opened 1 year ago

Chromatic-Hwi commented 1 year ago

Image Viewer 만들기

<기능 정의>

필수

부가


<제작>

1. 리소스 뷰의 Dialog 창 탭에서 [리소스 추가 -> Menu 선택]

2. 해당 Menu의 파일 오픈 탭의 클래스 편집

CFileDialog dlg(TRUE);
UINT ok = dlg.DoModal(); // 파일 열기 창 표시
if (ok == IDOK)
{
  CString filepath = dlg.GetPathName(); // 전체 경로를 입력하는 함수
}

3. 마우스 커서 좌표 출력

4. 마우스 휠 가변 배율 출력

5. 버튼 클릭 배율 변화

6. 스크롤바 화면 이동

7. 마우스 드래그 & 드랍 이동

8. 더블 버퍼링, 깜박임 방지


전체 클래스 구조

        00 OnMenuFileOpen
        01 OnBnClickedOk -> CString Only
        02 OnMenuFileReset -> CString Only
    03 OnMouseMove
    04 OnMouseWheel
    05 OnBnClickedUpBtn
    06 OnBnClickedDownBtn
    07 OnBnClickedOriginBtn
    08 OnHScroll
    09 OnVScroll
    10 OnLButtonUp

※ 참고

Chromatic-Hwi commented 1 year ago

CmoveItemDlg와 CAboutDlg 차이 -> ??? 콤보박스 : 버튼(또는 박스)을 누르면 아래로 컨텍스트 메뉴가 제공되어 항목을 선택할 수 있게 해주는 컨트롤을 의미. 서브클래싱 구현되어 있는 클래스를 상속하는 것. 어떤 객체의 일부 기능을 원하는 다른 기능으로 바꿔주는 것. 기존 윈도우나 컨트롤의 형태 또는 동작을 변경할 수 있도록 하는 것. 서브타이핑 : 정의되어 있는 인터페이스를 구현하는 것.

201300277-7b8ecaf5-9d86-43fc-9ee9-448a4f04ec1b

dc.StretchBlt(Rect.left, Rect.top, show_w, show_h, &memoryDC, 0, 0, bmp.bmWidth, bmp.bmHeight, SRCCOPY);//new original

BOOL StrechBlt( 1)표시 외부 프레임의 좌상단 x좌표, 2)표시 외부 프레임의 좌상단 y좌표, 3)표시 외부 프레임의 가로 폭, 4)표시 외부 프레임의 세로 폭, 소스 장치 컨텍스트 지정, a)내부 출력 이미지 좌상단 x 좌표, b)내부 출력 이미지 좌상단 y좌표, c)내부 출력 이미지의 너비, d)내부 출력 이미지의 높이, 옵션) 201589515-6aba51ec-25b1-42a5-afee-222ed6894b85