Wide Studio Programmer's Guide

Wide Studio Home
Up to


ドローイングエリア



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

ドローイングエリア(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 2.0

    For Use with Wide Studio Release 2.0, Spring 2002


    Wide Stuido Home | Up to

    Copyright(C) S. Hirabayashi, 1999-2002 Last modified: January 1, 2002