◆ 무한한 가능성/& Visual C/C++

[C++] WM_PAINT - line, rectangle, ellipse, star, radian, textout

치로로 2012. 3. 16. 09:22



case WM_PAINT:
        hdc = BeginPaint(hWnd, &ps);    // BeginPaint가 아닌 GetDC로 얻어옴(if WM_PAINT 가 아니라면)
//
//         // line & tri-angle
//         MoveToEx(hdc, 100, 110, NULL);
//         LineTo(hdc, 195, 195);
//         LineTo(hdc, 25, 195);
//         LineTo(hdc, 100, 110);
//
//
//         // rectangle
//         MyBrush1 = CreateSolidBrush(RGB(100, 0, 100));
//         OldBrush = (HBRUSH)SelectObject(hdc, MyBrush1);
//         Rectangle(hdc, 200, 200, 300, 300);
//         SelectObject(hdc, OldBrush);
//         DeleteObject(OldBrush);
//
//         // ellipse
//         MyBrush2 = CreateSolidBrush(RGB(150, 150, 0));
//         OldBrush = (HBRUSH)SelectObject(hdc, MyBrush2);
//         Ellipse(hdc, 400, 200, 500, 300);
//         SelectObject(hdc, OldBrush);
//         DeleteObject(OldBrush);
//
//         // star
//         MoveToEx(hdc, 550, 500, NULL);
//         LineTo(hdc, 400, 500);
//         LineTo(hdc, 500, 600);
//         LineTo(hdc, 475, 450);
//         LineTo(hdc, 400, 600);
//         LineTo(hdc, 550, 500);


        // radian
        for (i=0; i<10; i++)
        {
            kd = 10 * i + 90;
            r = kd * 3.141592 / 180.0;
            x = (int)(cos(r) * h);
            y = (int)(sin(r) * h);

            MoveToEx(hdc, 300+x, 300+y, NULL);
            LineTo(hdc,  300-x, 300-y);
        }

        // textout
        TextOut(hdc, 10, 10, "텍스트 출력", 11);

        sprintf(buf, "%d", number);
        TextOut(hdc, 10, 30, buf, strlen(buf));
        //sprintf("%d",number);

        EndPaint(hWnd, &ps);            // 그리고 ReleaseDC로 해방.
        break;


'◆ 무한한 가능성 > & Visual C/C++' 카테고리의 다른 글

윈도우 BorderStyle Flat 일 경우.. 창이동 가능하게  (0) 2015.06.04
[C++] Debug 참고  (0) 2012.03.15
[요약] Effective C++ 3장 (항목13~17)  (0) 2010.07.30
waveOut~()  (0) 2010.03.19
waveIn~()  (0) 2010.03.16