메뉴 바로가기

서브메뉴 바로가기

본문 바로가기

logo

C/C++/MFC

Dialogs Dialog 에 bmp 파일 출력

2008.06.05 12:19

WhiteAT 조회 수:29305

전체 소스 : WATbmpdisplay.zip


다이어로그에 bmp파일을 출력하고,
다이어로그 크기를 bmp 크기에 자동으로 맞추고,
다이어로그를 마우스로 이동할수 있게 한다.

 void CtestDlg::OnPaint() 함수에서
        CPaintDC dc(this); // 그리기를 위한 디바이스 컨텍스트
        // bmp 핸들어 얻기
        HBITMAP hBmp = (HBITMAP)LoadImage( AfxGetInstanceHandle(), "fnd.bmp",
            IMAGE_BITMAP, 0, 0,
            LR_LOADFROMFILE );

        /////////////////////////////////////////////////////////////////
        // 그림 사이즈를 얻기 위한 작업
        BITMAP bmp = { 0 };
        GetObject( hBmp, sizeof(BITMAP), &bmp );



        HDC m_dcBkGrnd;            // background bitmap dc
        m_dcBkGrnd = CreateCompatibleDC( dc);
        SelectObject( m_dcBkGrnd, hBmp );

        // bmp 출력
        BitBlt( dc.m_hDC, 0, 0, bmp.bmWidth,  bmp.bmHeight, m_dcBkGrnd, 0, 0, SRCCOPY );
        CDialog::OnPaint();


bmp출력01.JPG

<BMP 를 삽입한 후>

아래 한줄이면 윈도우의 크기가 조절된다.
        // 윈도우 크기 조절
        // bmp.bmWidth : 그림의 가로 길이
        // bmp.bmHeight : 그림의 세로 길이
       SetWindowPos( NULL, 0, 0, bmp.bmWidth, bmp.bmHeight, SWP_NOZORDER | SWP_NOMOVE );


bmp출력02.JPG

<윈도우 크기가 조절된 이후 >


 void CtestDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
    if ( !(m_dwMouseFlags & DRAGGING) )
    {
        m_pntMouse = point;
        m_dwMouseFlags |= DRAGGING;
    }
    CDialog::OnLButtonDown(nFlags, point);
}

void CtestDlg::OnLButtonUp(UINT nFlags, CPoint point)
{
    if ( m_dwMouseFlags & DRAGGING )
    {
        m_dwMouseFlags &= ~DRAGGING;
    }
    CDialog::OnLButtonUp(nFlags, point);
}

void CtestDlg::OnMouseMove(UINT nFlags, CPoint point)
{
    if ( m_dwMouseFlags & DRAGGING )
    {
        RECT rect;
        GetWindowRect( &rect );

        rect.left += point.x - m_pntMouse.x;
        rect.top += point.y - m_pntMouse.y;
     // 윈도우 위치 재설정
        SetWindowPos( NULL, rect.left, rect.top, 0, 0, SWP_NOZORDER | SWP_NOSIZE );
    }
    CDialog::OnMouseMove(nFlags, point);
}



관련 문서가 검색되었습니다.
  1. [2013/10/30] ZEO-S, CDS로 빛 밝기 -> LED ON/OFF by WhiteAT (8920)
  2. [2013/09/02] ZEO-S PWM 펄스를 Pulse Counter로 읽기, C# by WhiteAT (6785)
  3. [2013/08/29] ZEO-S, Pulse Counter, C# by WhiteAT (6380)
  4. [2013/06/13] ZEO-S, 스위치로 LED ON/OFF, C# by WhiteAT (10121)
  5. [2013/06/08] ZEO-S, LED 연속으로 이동, C# by WhiteAT (8860)
  6. [2013/06/06] ZEO-S, LED 이동 속도 조절, C# by WhiteAT (8749)
  7. [2010/09/29] ListView 아이템 끌어서 이동하기 by WhiteAT (17906)
  8. [2007/11/22] Dialog 형태의 프로그램 만들기 by WhiteAT () *1