WideStudio Programming Guide

| WideStudio Programming Guide | WideStudio Index Table of contents

> ## drawing 에리어

> ### drawing 에리어로 도형을 묘화하기에는

> drawing 에리어(WSCvdrawingArea 클래스)는 화면 영역에 자유로히 도형을 묘화할수가 있습니다. drawing 에리어에는 묘화용의 메서드가 마련되여있고 EXPOSE 이벤트(로출 이벤트) 로 이런 메서드를 이용해서 묘화합니다. 다음에 샘플프로그램은 drawing 에리어에서의 기본적인 묘화 방법을 표시합니다.

>     #include <WScom.h>
>     #include <WSCfunctionList.h>
>     #include <WSCbase.h>
>     //----------------------------------------------------------
>     //Function for the event procedure
>     //----------------------------------------------------------
>     #include <WSCvdrawingArea.h>
>     #include <WSCvslider.h>

>     void drawep(WSCbase* object){
>       //drawing_a is same as newvdra_000...
>       //You can get it extern WSCvdrawingArea* newvdra000; also.
>       WSCvdrawingArea* drawing_a =
>              (WSCvdrawingArea*)object->cast("WSCvdrawingArea"); //(A)
>       if (drawing_a == NULL){ //(B)
>         return;
>       }

>       drawing_a->setForeColor("#ff0000"); //(C)
>       drawing_a->drawLine(0,0,100,100);  //(D)

>     }
>     static WSCfunctionRegister  op("drawep",(void*)drawep);

> 먼저 drawing 에리어의 메서드에 접근(access)하기위해 (A)와 같이 drawing 에리어 클래스(WSCvdrawingArea)의 포인터를 취득し합니다. WSCbase 클래스의 포인터엿더라면 drawing 에리어의 메서드에 접근(access)못하기때문입니다.
> 이벤트 프로시저가 틀려서 다른 클래스에 붙여놓일 경우도 있기에 drawing 에리어 클래스인가를 (B) 로 판별합니다. 포인터의 취득결과가 NULL 가 아니면 drawing 에리어 클래스입니다.
> (C) 에서 묘화할 때의 색을 지정하고있습니다. (D) 에서는 좌표(0,0)에서 좌표(100,100)까지에 선을 묘화하고있습니다.
> drawing 에리어에는 선을 묘화할 메서드 외에 다음과 같은 메서드가 있습니다.
> - 구형의 묘화
> - 원,원호,타원의 묘화
> - 다각형의 묘화
> - 이미지의 묘화

> ### drawing 에리어로 이미지를 묘화하기에는

> 이미지를 표시할 경우는 drawImage 메서드, 혹은 drawStretchedImage 메서드를 사용합니다. drawStretchedImage 메서드는 drawImage 메서드가 그대로의 크기로 표시하는것에 대해서 주어진 크기에 이미지를 확대 축소해서 표시합니다.

>     #include <WScom.h>
>     #include <WSCfunctionList.h>
>     #include <WSCbase.h>
>     //----------------------------------------------------------
>     //Function for the event procedure
>     //----------------------------------------------------------
>     #include <WSCvdrawingArea.h>
>     #include <WSCvslider.h>

>     void drawep(WSCbase* object){
>       //drawing_a is same as newvdra_000...
>       //You can get it extern WSCvdrawingArea* newvdra000; also.
>       WSCvdrawingArea* drawing_a =
>              (WSCvdrawingArea*)object->cast("WSCvdrawingArea");
>       if (drawing_a == NULL){
>         return;
>       }
>       WSCushort w = drawing_a->getProperty(WSNwidth);
>       WSCushort h = drawing_a->getProperty(WSNheight);
>       drawing_a->drawStretchedImage(0,0,w,h,"001.jpg");  //(A)

>     }
>     static WSCfunctionRegister  op("drawep",(void*)drawep);

> A에서는 drawing 에리어의 크기에 맞추어서 이미지를 표시하고있습니다.

Document Release 3.70 for WideStudio ver 3.70, Feb 2004

WideStudio documents index | Table of contents

Copyright(C) T. Hirabayashi, 2000-2004 | Last modified: Feb 25, 2004