WideStudio Logo
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, May 2004


    WideStudio documents index | Table of contents

    Copyright(C) WideStudio Development Team, 1999-2004 Last modified: May 25, 2004