(new in Rev4.02)
MQCanvas クラスは描画イベント時にMQWidgetPaintParam構造体内に格納され、このクラスを通じて画面への各図形の描画を行います。
クラス | |
MQCanvas | コンストラクタ |
~MQCanvas | デストラクタ |
メンバ関数 | |
SetColor | 描画色の設定 |
SetGradientColor | グラデーション色の設定 |
SetStrokeWidth | 線の描画幅の設定 |
SetStrokeCap | 線の端の描画方法の設定 |
SetStrokeJoin | 折れ線の継ぎ目の描画方法の設定 |
SetStrokeMiterLimit | マイター限界の設定 |
SetStrokeDash | 点線の設定 |
SetFont | フォントの設定 |
SetFontSize | フォントのサイズの設定 |
SetFontRateSize | フォントのサイズ比率の設定 |
SetAntiAlias | アンチエイリアスの設定 |
PushClipRect | クリップ範囲の設定 |
PopClipRect | クリップ範囲の解除 |
Clear | キャンバス全体の消去 |
DrawLine | 直線の描画 |
DrawPolyline | 折れ線の描画 |
DrawCircle | 円の描画 |
FillCircle | 円の塗りつぶし |
DrawEllipse | 楕円の描画 |
FillEllipse | 楕円の塗りつぶし |
DrawRect | 長方形の描画 |
FillRect | 長方形の塗りつぶし |
DrawRoundRect | 角の丸い長方形の描画 |
FillRoundRect | 角の丸い長方形の塗りつぶし |
DrawPolygon | 多角形の描画 |
FillPolygon | 多角形の塗りつぶし |
DrawDIB | ビットマップの描画 |
DrawText | 文字列の描画 |
MeasureText | 文字列の描画サイズの計算 |
MQCanvas::MQCanvas(void *ptr);
コンストラクタです。
直接呼び出す必要はありません。SDK内で生成されたものが渡されます。
MQCanvas::~MQCanvas();
デストラクタです。
void MQCanvas::SetColor(int r, int g, int b, int a);
void MQCanvas::SetColor(const MQCanvasColor& col)
各描画関数で使用される色を設定します。
void MQCanvas::SetGradientColor(int x1, int y1, int x2, int y2, const std::vector
void MQCanvas::SetGradientColor(float x1, float y1, float x2, float y2, const std::vector
各描画関数で使用される色を始点から終点まで変移するグラデーションとして設定します。
SetColor()を呼び出すとグラデーション描画は解除されます。
void MQCanvas::SetStrokeWidth(float width);
線の描画幅を設定します。
void MQCanvas::SetStrokeCap(MQCANVAS_CAP_TYPE cap);
線の端の描画方法を設定します。
void MQCanvas::SetStrokeJoin(MQCANVAS_JOIN_TYPE join);
折れ線の継ぎ目の描画方法を設定します。
void MQCanvas::SetStrokeMiterLimit(float limit);
折れ線の継ぎ目の描画方法にマイターが指定されているときのマイター限界を設定します。
void MQCanvas::SetStrokeDash(const std::vector
線を点線として描画するときの線の長さと隙間を設定します。
点線描画を終了するときは空の配列を渡してください。
void MQCanvas::SetFont(const wchar_t *fontname, bool bold);
文字を描画するフォントを設定します。
フォント名はシステムに存在するものを、また描画する文字コードに対応するフォントを指定してください。存在しないフォントが指定されたり、フォントが対応していない文字コードが描画された場合、描画は正常に行われません。
void MQCanvas::SetFontSize(int size);
文字を描画するフォントのサイズを設定します。
void MQCanvas::SetFontRateSize(float rate);
文字を描画するフォントのサイズを標準フォントサイズに対する比率で設定します。
void MQCanvas::SetAntiAlias(bool val);
アンチエイリアスを有効にして描画するかどうかを設定します。
void MQCanvas::PushClipRect(int x, int y, int w, int h);
クリッピング範囲を設定します。
クリッピング範囲が設定されると、その範囲外への描画は行われません。
描画が終わった後は必ずPopClipRect()でクリッピング範囲を元に戻してください。PushClipRect()が複数回呼び出された場合は、PopClipRect()を同じ回数呼び出す必要があります。
void MQCanvas::PopClipRect();
PushClipRect()で設定されたクリッピング範囲を元に戻します。
void MQCanvas::Clear(int r, int g, int b, int a);
void MQCanvas::Clear(const MQCanvasColor& col);
キャンバス全体を指定した色で塗りつぶします。
void MQCanvas::DrawLine(int x1, int y1, int x2, int y2);
void MQCanvas::DrawLine(float x1, float y1, float x2, float y2);
指定した2点間を結ぶ直線を描画します。
void MQCanvas::DrawPolyline(POINT *points, int num_points);
void MQCanvas::DrawPolyline(MQCanvasPoint *points, int num_points);
指定した点間を結ぶ折れ線を描画します。
void MQCanvas::DrawCircle(int x, int y, float r);
void MQCanvas::DrawCircle(float x, float y, float r);
指定した中心位置から指定した半径の円を描画します。
void MQCanvas::FillCircle(int x, int y, float r);
void MQCanvas::FillCircle(float x, float y, float r);
指定した中心位置から指定した半径の円の内部を塗りつぶします。
void MQCanvas::DrawEllipse(int x, int y, float rx, float ry);
void MQCanvas::DrawEllipse(float x, float y, float rx, float ry);
指定した中心位置から指定した半径の楕円を描画します。
void MQCanvas::FillEllipse(int x, int y, float rx, float ry);
void MQCanvas::FillEllipse(float x, float y, float rx, float ry);
指定した中心位置から指定した半径の楕円の内部を塗りつぶします。
void MQCanvas::DrawRect(int x, int y, int w, int h);
void MQCanvas::DrawRect(float x, float y, float w, float h);
長方形を描画します。
void MQCanvas::FillRect(int x, int y, int w, int h);
void MQCanvas::FillRect(float x, float y, float w, float h);
長方形の内部を塗りつぶします。
void MQCanvas::DrawRoundRect(int x, int y, int w, int h, int rx, int ry);
void MQCanvas::DrawRoundRect(float x, float y, float w, float h, float rx, float ry);
角の丸い長方形を描画します。
void MQCanvas::FillRoundRect(int x, int y, int w, int h, int rx, int ry);
void MQCanvas::FillRoundRect(float x, float y, float w, float h, float rx, float ry);
角の丸い長方形の内部を塗りつぶします。
void MQCanvas::DrawPolygon(POINT *points, int num_points);
void MQCanvas::DrawPolygon(MQCanvasPoint *points, int num_points);
指定した点列を結んだ多角形を描画します。始点と終点が結ばれた閉領域となります。
void MQCanvas::FillPolygon(POINT *points, int num_points);
void MQCanvas::FillPolygon(MQCanvasPoint *points, int num_points);
指定した点列を結んだ多角形の内部を塗りつぶします。始点と終点が結ばれた閉領域となります。
void MQCanvas::DrawDIB(void *header, void *buffer, int x, int y);
void MQCanvas::DrawDIB(void *header, void *buffer, int x, int y, int w, int h);
指定した位置にDIBを描画します。
header には BITMAPINFOHEADER構造体、また8bit以下の場合はその後にRGBQUAD配列が続きます。
buffer は BITMAPINFOHEADER構造体内で定義された画像データとなります。
void MQCanvas::DrawText(const wchar_t *str, int x, int y, int w, int h, bool horz_center, bool vert_center = true);
指定した領域内に文字列を描画します。
POINT MQCanvas::MeasureText(const wchar_t *str);
指定した文字列を描画した場合の縦横のサイズをピクセル数で計算します。