Application Framework > ビットマップ・エディター・アプリケーション > 手順 3:ビットマップの変更および保存 > DrawRectangleCommand の定義
 
DrawRectangleCommand の定義
DrawRectangleCommand クラスは、IlvDvCommand のサブクラスです。これは、drawcmd.h で宣言されており、drawcmd.cpp で定義されています。DrawRectangleCommand クラスの目的は、塗りつぶし四角形を文書ビットマップの特別な場所に、指定した色で描画して文書を変更することです。このため、このコマンドから、次にアクセスする必要があります。
*文書
*変更される四角形
*ビットマップに描画するために使用されたパレット
コンストラクターは、次のように表示されます。
DrawRectangleCommand::DrawRectangleCommand(BitmapDocument* document,
const IlvPoint& point,
IlvDim size,
IlvPalette* palette,
const char* name)
メモ:point および size 引数が、コマンドによって変更される四角形を計算するために使用されます。
DrawRectangleCommand::doIt メソッドが、コマンドが実行されるときに呼び出されます (IlvDvDocument::doCommand メソッドを参照)。文書を変更する前に、コマンドを元に戻せるようにするために変更される四角形は保存してください。
void
DrawRectangleCommand::doIt()
{
// Save the initial bitmap
_bitmap->drawBitmap(_document->getPalette(),
_document->getBitmap(),
_rect,
IlvPoint(0,0));
// Then draw in the document's bitmap
_document->getBitmap()->fillRectangle(_palette, _rect);
// Finally, refresh all the views connected to the document
_document->refreshViews(_rect);
}
refreshViews メソッドは、この手順の後半で説明します。その目的は、変更されている文書に接続されているすべてのビューを更新することです。
undo メソッドは単に、doIt メソッドに保存されているビットマップを回復し、ビューを更新します。
void
DrawRectangleCommand::undo()
{
// Restore the bitmap saved in _bitmap into the document's bitmap
_document->getBitmap()->drawBitmap(_document->getPalette(),
_bitmap,
IlvRect(0,
0,
_bitmap->width(),
_bitmap->height()),
IlvPoint(_rect.x(), _rect.y()));
// Then, refresh all the views connected to the document
_document->refreshViews(_rect);
}

Version 6.0
Copyright © 2015, Rogue Wave Software, Inc. All Rights Reserved.