Wide Studio Programmer's Guide

Wide Studio Home
Up to


オブジェクトの描画制御を行うには

オブジェクトの描画制御を行うには、次のようなメンバ関数を利用します。
描画制御メンバ関数 機能
setAbsoluteDraw(Boolean) 強制描画フラグを立てる
draw() 通常描画
redraw() 一度クリアして描画
cdraw() 子も含めて再描画
clear() クリア
update() プロパティ変更後であれば redraw() する



オブジェクトの描画更新を行うには

通常のプロパティ更新は、イベントプロシージャ実行直後に 更新されますが、ユーザが強制的に描画更新を行うこともできます。
void event_procedure(WSCbase* object){
  //プロパティの変更
  object->setProperty(WSNlabelString,"設定動作");
  //更新
  object->update(); 
}
update 関数は、プロパティが変更されて更新が必要な場合のみ更新処理を行います。

オブジェクトを再描画させるには

オブジェクトに再描画させるには、次のようなケースがあります。 それぞれのケースにおいて再描画方法を示します。
  • クリア描画(イベント発生あり)
    通常の再描画ならば、一度クリアして描画させる redraw() を使います。 redraw() はクリアして、EXPOSE イベントを発生させます。 もし、他のオブジェクトで重なっているものがあれば、そのオブジェクトも 再描画されます。redraw() はイベントを発生させる関係上、多量のオブジェクトが 存在するアプリケーションウィンドウでは、パフォーマンスが悪い場合があります。
         object->redraw(); 
    
  • 描画(上書き)
    EXPOSE イベントを発生させずに 強制的に描画(上書き)させる場合は、強制描画フラグをたてて draw()を使います。 draw() は、再描画の必要のない場合、実行されないので、強制的に 描画を行いたい場合は次のように行います。
         object->setAbsoluteDraw(True); 
         object->draw(); 
    
  • 単純描画(上書き)
    EXPOSE イベントを発生させずに 単に描画させる場合は、draw() を使います。 強制描画フラグが立っていない場合は、EXPOSE イベントが 発生した EXPOSE 領域のみ描画します。 draw() は、再描画の必要のない場合、 実行されないのでパフォーマンスの向上が図れます。
         object->draw(); 
    
  • クリア描画(イベント発生なし)
    EXPOSE イベントを発生させずに 一度クリアして描画させる場合は、clear() と draw() を使います。 もし、他のオブジェクトで重なっているものがあれば、重なっている部分は欠けて しまうので、そのような場合は、クリア描画(イベント発生あり)を行ってください。
         object->clear(); 
         object->setAbsoluteDraw(True);
         object->draw(); 
    

Document Release 3.00

For Use with Wide Studio Release 3.00, Summper 2002


Wide Stuido Home | Up to

Copyright(C) T. Hirabayashi, 1999-2002 Last modified: June 10, 2002