WideStudio Programming Guide

| WideStudio Programming Guide | WideStudio 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.70 for WideStudio ver 3.70, Feb 2004

WideStudio documents index | 目次

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