상세 컨텐츠

본문 제목

[MFC] Picture control 사용,이용 하기 관련

프로그래밍 관련/MFC

by AlrepondTech 2016. 11. 30. 12:20

본문

반응형

 

 

=================================

=================================

=================================

 

 

 

 

출처: http://ryumin13.tistory.com/entry/MFC-Picture-control-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0

 

 

 

 


mfc에 다이얼로그에 그림을 넣을 때 가장 쉬운방법은, 


Picture control을 사용하는 것이다...

일단 Picture control의 간단한 사용방법을 알아보자..

 

 

 


일단 다이얼로그에 픽쳐 컨트롤을 만든다..

 


그리고 ID의 static 부분을 임의의 이름으로 바꾼다...

 


그리고 변수를 추가한다. 

 

 

 

 

변수명도 임의로 넣는다.. 

 

 

 

그리고 이것은 dc를 얻어와서 그냥 뭐든 그리는 방법인데...

사실, 다이얼로그의 dc를 얻어오면 다이얼로그에 그릴 수는 있다..

이 것은 그냥 dc를 얻는 방법을 알아보려고 해본 방법이다... 

OnPaint() 함수에서 위처럼 입력하고 컴파일하면,

 


이렇게 선이 그어진다. 

그림을 넣으려면,

 

 

리소스에..

 

 


비트맵을 추가한다. ( 다른방식으로 그림파일을 불러와도 된다. )

 

 

 

 

 

반응형

 

 

728x90

 

 


이렇게 파일을 하나 추가하고, 

 


picture control에 속성에서 Type을 Bitmap으로 바꾼다..

 

 


그러면 위와 같이 변한다.. bitmap 상태일때는 크기 조절이 안된다..

 


테스트용 버튼을 하나 추가하고,

 

 

 

함수를 생성한다... 그리고, 

 

 

 


HBITMAP hbit;
 hbit = ::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP1));

 m_ctlPic1.SetBitmap(hbit) ;

위와 같이 입력한다.. 그리고 컴파일하면,

 

 

이렇게 나오는데 Button1을 누르면...

 

 

 

짠.. 위와 같이 그림이 나오게 된다.. 

머 버튼을 안눌려고 되도록 하려면, 그냥 기본 초기화 함수에 넣어도 되고...

여러가지 응용을 하여 사용하면 된다. 

 

 

=================================

=================================

=================================

 

 

출처: http://ils87.egloos.com/m/2381661

 

 

* MFC로 도형 그리기 


   1. 둥근 사각형 그리는 함수  
       
       - RoundRect(int x1, int y1, int x2, int y2, int x3, int y3);
       
       - (x1, y1)  : 왼쪽 위 꼭지점의 좌표
       - (x2, y2)  : 오른쪽 아래의 꼭지점 좌표
       
       - (x3, y3)  : 사각형의 둥근 정도를 표현, 숫자가 클수록 많이 둥글게 표현된다. 

 

 2. 원 그리는 함수 
      
       - Ellipse(int x1, int y1, int x2, int y2);
       
       - (x1, y1) : 사각형의 왼쪽 위 꼭지점의 좌표
       - (x2, y2) : 사각형의 오른쪽 아래 꼭지점의 좌표
       
       - 위 두 좌표에 의해 그려진 직사각형에 내접하는 원을 그려주는 함수 



   3. 사각형 그리는 함수 

       - Rectangle(int x1, int y1, int x2, int y2);
       
       - (x1, y1) : 사각형의 왼쪽 위 꼭지점의 좌표
       - (x2, y2) : 사각형의 오른쪽 아래 꼭지점의 좌표

       - 두 좌표에 의해 그려지는 사각형이므로, 직사각형 밖에 표현할수 없다. 
          (직사각형 외의 다른 사각형은  polygon함수를 사용하여, 직접 좌표를 지정하는 방법으로 표현할수 있다.)


   4. 다각형 그리는 함수 

       - Polygon(LPPOINT IpPoints, int nCount);
       
       - IpPoints : 꼭지점 좌표 
            ex. POINT ar[] = {int x1, int y1, int x2, int y2, int x3, int y3}     //  꼭지점  (x1,y1), (x2,y2), (x3,y3)

       - nCount : 다각형을 이루는 각의 수 

 



 



                                                                       참고. http://blog.naver.com/skyarro?Redirect=Log&logNo=120095702323
 
  결과. 

 

 

 

  void CHW1View::OnDraw(CDC* pDC)
  {
         CBrush brush1(RGB(255,0,0));
         CBrush brush2(RGB(0,255,0));
         CBrush brush3(RGB(0,0,255));
         CBrush brush4(RGB(255,255,0));
         CBrush* oldBrush;
    
         // Red Round Rectangle
         oldBrush = pDC -> SelectObject(&brush1);
         pDC -> RoundRect(50,50,150,150,50,50);   
    
          // Green Circle 
          oldBrush = pDC -> SelectObject(&brush2);
          pDC -> Ellipse(200,50,300,150);  

          // Blue Rectangle
          oldBrush = pDC -> SelectObject(&brush3);
          pDC -> Rectangle(350,50,450,150);


           // Yellow Triangle
           oldBrush = pDC -> SelectObject(&brush4);
            POINT ar[] = {500,150,600,150,550,50};
            pDC -> Polygon(ar,3);

           
            pDC ->SelectObject(oldBrush);
 
    }
   
 

 

=================================

=================================

=================================

 

 

반응형


관련글 더보기

댓글 영역