ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C언어 공부 되새김 Win32Api구현해보기 11편 조건문 switch case
    C언어 공부 되새김 Win32api로 구현해보기 2019. 10. 24. 21:11

    컴퓨터 프로그래밍 C언어 공부를 콘솔로 공부하고 윈도우 프로그래밍으로 구현하는데 

    콘솔로 공부하던 소스를 윈도우 프로그래밍 기본 코드를 제외하고 함수 형식으로 콘솔 소스와

    비슷하게 구현해보려고 합니다.

    콘솔은 쉽고 윈도우는 어렵다가 아니고 윈도우 프로그래밍을 시작부터 접하면서 친숙해졌으면 합니다.

    구현은 무료 통합개발 환경인 Dev-C++ 4.9.9.2로 구현합니다.

    지난 편에는 if else구현해서 홀수이면 출력하고, 짝수이면 짝수를 출력하는 프로그램을 구현하였습니다.

    이번 편에는 switch case구현해서 1,2,3을 곱할 때는 3단을 4,5,6을 곱할 때는 4단을 7,8,9를 곱할 때는 5단을 출력하는 프로그램을 구현하겠습니다.

     

     Console프로그래밍

    void main(int argc, char *argv[])

    {

      int i;

      int Dan=3;

      for(i=1;i<10;i++){

        switch(i){

          case 1:

          case 2:

          case 3:

            printf("%d * %d = %d\n",Dan,i,Dan*i);

          break;

          case 4:

          case 5:

          case 6:

            printf("%d * %d = %d\n",Dan+1,i,(Dan+1)*i);

          break;

          case 7:

          case 8:

          case 9:

            printf("%d * %d = %d\n",Dan+2,i,(Dan+2)*i);

          break;

          default:

          break;

        }

      }

     

       system("PAUSE"); 

     

    }

     

     Windows프로그래밍 TextOut

    void Study_Main(HDC hdc){

     

        char strline[80];

        int i;

        int Dan=3;

     

        for(i=1;i<10;i++){

          switch(i){

            case 1:

            case 2:

            case 3:

              wsprintf(strline,TEXT("%d * %d = %d"), Dan, i, Dan*i); // 출력할 줄 생성 

              TextOut(hdc, 0,20*i,strline,lstrlen(strline)); // 가로 0, 세로 20*i 위치에 출력 

            break;

            case 4:

            case 5:

            case 6:

              wsprintf(strline,TEXT("%d * %d = %d"), Dan+1, i, (Dan+1)*i); // 출력할 줄 생성 

              TextOut(hdc, 0,20*i,strline,lstrlen(strline)); // 가로 0, 세로 20*i 위치에 출력 

            break;

            case 7:

            case 8:

            case 9:

              wsprintf(strline,TEXT("%d * %d = %d"), Dan+2, i, (Dan+2)*i); // 출력할 줄 생성 

              TextOut(hdc, 0,20*i,strline,lstrlen(strline)); // 가로 0, 세로 20*i 위치에 출력 

            break;

     

            default:

            break;

          }

        }

    }

     

     Windows프로그래밍 DrawText

    void Study_Main(HDC hdc){

     

        char str[80*23];

        char strline[80];

        int i;

        int Dan=3;

     

        for(i=1;i<10;i++){

     

          switch(i){

            case 1:

            case 2:

            case 3:

              wsprintf(strline,TEXT("%d * %d = %d\n"), Dan, i, Dan*i); // 출력할 줄 생성 

              strcat(str,strline);

            break;

            case 4:

            case 5:

            case 6:

              wsprintf(strline,TEXT("%d * %d = %d\n"), Dan+1, i, (Dan+1)*i); // 출력할 줄 생성 

              strcat(str,strline);

            break;

            case 7:

            case 8:

            case 9:

              wsprintf(strline,TEXT("%d * %d = %d\n"), Dan+2, i, (Dan+2)*i); // 출력할 줄 생성 

              strcat(str,strline);

            break;

     

            default:

            break;

          }

           

        }

       

        // 화면의 (0, 0) 위치부터 (640, 480) 위치까지 사각형 영역을 만든다

        RECT rt = {0, 0, 640, 480};

        DrawText(hdc, str, -1, &rt, DT_LEFT | DT_WORDBREAK);

     

    }

     

    Console출력과 똑같이 잘 출력되었습니다. ^^;

    오늘은 여기까지입니다.

    그럼 이만...


Designed by Tistory.