ドローイングエリアドローイングエリアで図形を描画するにはドローイングエリア(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.00 For Use with Wide Studio Release 3.00, Summper 2002
|