WideStudio/MWT Logo
WideStudio/MWT
Programming Guide
WideStudio/MWT Index
目次


ドローイングエリア



ドローイングエリアで図形を描画するには

ドローイングエリア(WSCvdrawingArea クラス)は、画面領域に自由に図形を描 画することが可能です。 ドローイングエリアには、描画用のメソッドが用意 されており、EXPOSE イベント(露出イベント) で、これらのメソッドを用いて 描画します。次に示すサンプルプログラムは、ドローイングエリアでの基本的 な描画方法を示します。

#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);

まず、ドローイングエリアのメソッドにアクセスするために、(A)に示す様に、 ドローイングエリアクラス(WSCvdrawingArea)のポインタを取得します。 WSCbase クラスのポインタのままですと、ドローイングエリアのメソッドにア クセスできないからです。

イベントプロシージャが間違って他のクラスに張られる場合もあるので、ドロー イングエリアクラスかどうか(B) で判別します。ポインタの取得結果が NULL でなければ、ドローイングエリアクラスです。

(C) で描画する時の色を指定しています。(D) では、座標(0,0)から座標 (100,100)へ線を描画しています。

ドローイングエリアには、線を描画するメソッドの他に、 次のようなメソッドがあります。


  • 矩形の描画

  • 円、円弧、楕円の描画

  • 多角形の描画

  • イメージの描画


  • ドローイングエリアでイメージを描画するには

    イメージを表示したい場合は、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では、ドローイングエリアのサイズにあわせてイメージを表示しています。

    Document Release 3.90 for WideStudio/MWT ver 3.90, Jul 2005


    WideStudio/MWT documents index | 目次

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