WideStudio/MWT Logo
WideStudio/MWT
Programming Guide
WideStudio/MWT 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.90 for WideStudio/MWT ver 3.90, Jul 2005


    WideStudio/MWT documents index | Table of contents

    Copyright(C) WideStudio/MWT Development Team, 1999-2005 Last modified: Jul 31, 2005