TNB Library
|
折れ線グラフコントロール. [詳解]
#include <TnbMfcLineGraphViewCtrl.h>
公開型 | |
enum | { EDGE_VALUE = 10000 , INTERNALLY_COLOR = RGB(1, 1, 1) } |
定数 [詳解] | |
enum | ELineStyle { LineStyle_Non , LineStyle_Solid , LineStyle_Dot , LineStyle_Bold , LineStyle_EdgeDot } |
ラインスタイル [詳解] | |
公開メンバ関数 | |
void | ClearPoint (void) |
[設定] ポイントクリア. [詳解] | |
CLineGraphViewCtrl (void) | |
コンストラクタ. [詳解] | |
DWORD | GetExStyle (void) const |
[取得] ウィンドウ拡張スタイル取得. [詳解] | |
INDEX | GetHorizontalIndexLimit (void) const |
[取得] 横軸最大インデックス取得. [詳解] | |
int | GetHorizontalIndexPixel (void) const |
[取得] インデックスピクセル取得. [詳解] | |
CDC * | GetImageDC (void) |
[取得] グラフイメージ DC 取得. [詳解] | |
const SIZE & | GetImageSize (void) const |
[取得] グラフイメージサイズ取得. [詳解] | |
HWND | GetSafeHwnd (void) const |
[取得] ウィンドウハンドル取得. [詳解] | |
DWORD | GetStyle (void) const |
[取得] ウィンドウスタイル取得. [詳解] | |
INDEX | GetViewHorizontalPos (void) const |
[取得] 水平表示位置取得. [詳解] | |
size_t | GetViewHorizontalPosLimit (void) |
[取得] 水平表示最大位置取得. [詳解] | |
void | GetViewValueRange (double &_topValue, double &_bottomValue) const |
[取得] 垂直表示範囲取得. [詳解] | |
bool | HasScrollBar (void) const |
[確認] スクロールバーあり?. [詳解] | |
int | HorizontalIndexToX (INDEX horizontalIndex) |
[取得] 横軸インデックス to X座標. [詳解] | |
bool | IsReverseHorizontalIndexMode (void) const |
[確認] 逆インデックスモード?. [詳解] | |
BOOL | ModifyStyle (DWORD dwRemove, DWORD dwAdd, UINT nFlags=0) |
[設定] ウィンドウスタイル変更. [詳解] | |
BOOL | ModifyStyleEx (DWORD dwRemove, DWORD dwAdd, UINT nFlags=0) |
[設定] ウィンドウ拡張スタイル変更. [詳解] | |
void | ReleaseImageDC (void) |
[設定] グラフイメージ DC 返却. [詳解] | |
bool | SetBackgroundWidth (COLORREF backgroundColor, size_t graphWidth=0) |
[設定] グラフ背景幅設定. [詳解] | |
bool | SetHorizontalIndexPixel (int pixel=1, bool isReverseIndexMode=false) |
[設定] インデックスピクセル設定. [詳解] | |
bool | SetOverlayText (INDEX pos, COLORREF color=RGB(0, 0, 0), LPCTSTR lpsz=NULL, HFONT hFont=NULL) |
[設定] 文字列設定. [詳解] | |
void | SetPoint (COLORREF color, double value, INDEX horizontalIndex=0, bool withContinuousLine=true) |
[設定] ポイント設定. [詳解] | |
size_t | SetPointMakertSize (size_t width) |
[設定] ポイントマーカーサイズ設定. [詳解] | |
void | SetScaleLine (COLORREF color, ELineStyle style=LineStyle_Solid) |
[設定] スケール線設定. [詳解] | |
bool | SetScrollBarHeight (int height=0) |
[設定] スクロールバー高さ. [詳解] | |
void | SetScrollOneStep (size_t os=1) |
[設定] スクロールバー1ステップ幅. [詳解] | |
bool | SetSubScaleLine (INDEX number, ELineStyle style=LineStyle_Non, COLORREF color=0, double step=0.0) |
[設定] サブスケール線設定. [詳解] | |
void | Settle (bool isForce=false) |
[設定] 確定. [詳解] | |
void | SetVerticalLine (COLORREF color, INDEX horizontalIndex, int length=-1) |
[設定] 縦スケール設定. [詳解] | |
void | SetViewHorizontalPos (INDEX pos) |
[設定] 水平表示位置設定. [詳解] | |
bool | SetViewValueRange (double topValue, double bottomValue) |
[設定] 垂直表示範囲設定. [詳解] | |
BOOL | SetWindowPos (const CWnd *pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags) |
[設定] ウィンドウサイズポジション設定. [詳解] | |
void | Shift (int count=1) |
[移動] シフト. [詳解] | |
BOOL | ShowWindow (int nCmdShow) |
[設定] ウィンドウ表示状態. [詳解] | |
限定公開メンバ関数 | |
void | OndemandRemakeViewImage (void) |
[通知] 再構築要求通知. [詳解] | |
virtual void | OnMadeViewImage (CDC *pDC, const SIZE &sz) |
[通知] 表示用イメージ作成通知. [詳解] | |
virtual void | PreSubclassWindow (void) |
[通知] subclassing/unsubclassing functions. [詳解] | |
virtual LRESULT | WindowProc (UINT message, WPARAM wParam, LPARAM lParam) |
[通知] for processing Windows messages. [詳解] | |
折れ線グラフコントロール.
最下限 〜 0(基準) 〜 最上限 の縦軸を持った折れ線グラフを表示するコントロールです。 表示の上限と下限を指定することが出来ます。 この表示の上限下限がコントロールの上部下部にマッピングされて表示されます。 → SetViewValueRange() 横軸はコントロールのクライアント幅以上も指定可能です。 その場合、横スクロールバーが表示されます。 → SetBackgroundWidth() また、スクロールすると親ウィンドウに、 WM_HSCROLL メッセージが飛びます。その際、 WPARAM の下位ワードは SB_THUMBPOSITION 固定、上位ワードは現在の水平表示位置が入っています。 LPARAM は本コントロールのウィンドウハンドルです(MFC のハンドラの場合、 OnHScroll() の第三引数は CScrollBar* ですが、 このコントロールのポインタが入ってますので扱いには注意してください)。 横軸インデックス1個を何ピクセルにするか指定することが出来ます。デフォルトは1です。 → SetHorizontalIndexPixel() スケール線を表示することが出来ます(メイン線とサブ線)。それぞれ、スタイル、色を指定可能です。 → SetScaleLine() , SetSubScaleLine() 任意の文字を、グラフ内に表示することが出来ます(8隅の位置)。それぞれフォント、色の指定が可能。 これらの文字は横スクロールには影響されません。 → SetOverlayText() 線は、色毎に管理され、連続したポイントを線で接続することが可能です。 横軸インデックス0は、通常左ですが、右にすることも可能です(表示が左右反転する)。 → SetHorizontalIndexPixel() 静的なグラフの他、全体をスクロールさせて連続的に新しい情報を表示していくことも可能です(最新を最右か最左に固定)。 → Shift() また、DCを取得し、自由に描画することも可能です。 → GetImageDC() , ReleaseImageDC()
TnbMfcLineGraphViewCtrl.h の 135 行目に定義があります。
anonymous enum |
定数
列挙値 | |
---|---|
EDGE_VALUE | デフォルトの上下端のポイント値 |
INTERNALLY_COLOR | 内部処理用カラー |
TnbMfcLineGraphViewCtrl.h の 141 行目に定義があります。
enum ELineStyle |
ラインスタイル
列挙値 | |
---|---|
LineStyle_Non | 非表示 |
LineStyle_Solid | 実線 |
LineStyle_Dot | 破線 |
LineStyle_Bold | 太線 |
LineStyle_EdgeDot | 両端のみ |
TnbMfcLineGraphViewCtrl.h の 148 行目に定義があります。
CLineGraphViewCtrl | ( | void | ) |
コンストラクタ.
TnbMfcLineGraphViewCtrl.h の 158 行目に定義があります。
void ClearPoint | ( | void | ) |
|
inherited |
[取得] ウィンドウ拡張スタイル取得.
本インスタンスが管理しているウィンドウの拡張スタイルを返します。
INDEX GetHorizontalIndexLimit | ( | void | ) | const |
[取得] 横軸最大インデックス取得.
SetPoint() や SetVerticalLine() に指定できる横軸インデックスの最大を取得できます。
TnbMfcLineGraphViewCtrl.h の 515 行目に定義があります。
int GetHorizontalIndexPixel | ( | void | ) | const |
[取得] インデックスピクセル取得.
TnbMfcLineGraphViewCtrl.h の 238 行目に定義があります。
CDC * GetImageDC | ( | void | ) |
[取得] グラフイメージ DC 取得.
グラフの書かれているイメージの DC を取得できます。 DC のサイズは GetImageSize() で得られます。 描画後は、 ReleaseImageDC() を実行する必要があります。
NULL | 失敗. |
NULL以外 | 成功。値は CDC のポインタ. |
TnbMfcLineGraphViewCtrl.h の 428 行目に定義があります。
const SIZE & GetImageSize | ( | void | ) | const |
|
inherited |
[取得] ウィンドウハンドル取得.
本インスタンスが管理しているウィンドウのハンドルを返します。
|
inherited |
[取得] ウィンドウスタイル取得.
本インスタンスが管理しているウィンドウのスタイルを返します。
INDEX GetViewHorizontalPos | ( | void | ) | const |
size_t GetViewHorizontalPosLimit | ( | void | ) |
[取得] 水平表示最大位置取得.
SetViewHorizontalPos() に渡せる最大値を取得できます。
TnbMfcLineGraphViewCtrl.h の 607 行目に定義があります。
void GetViewValueRange | ( | double & | _topValue, |
double & | _bottomValue | ||
) | const |
[取得] 垂直表示範囲取得.
[out] | _topValue | 最上の縦軸値 |
[out] | _bottomValue | 最下の縦軸値 |
TnbMfcLineGraphViewCtrl.h の 261 行目に定義があります。
bool HasScrollBar | ( | void | ) | const |
[確認] スクロールバーあり?.
true | あり |
false | なし |
TnbMfcLineGraphViewCtrl.h の 415 行目に定義があります。
int HorizontalIndexToX | ( | INDEX | horizontalIndex | ) |
[取得] 横軸インデックス to X座標.
横軸インデックスを GetImageDC() で描画するための X 座標に変換します。
horizontalIndex | 横軸インデックス. |
TnbMfcLineGraphViewCtrl.h の 466 行目に定義があります。
bool IsReverseHorizontalIndexMode | ( | void | ) | const |
[確認] 逆インデックスモード?.
正インデックスモードは最左が横軸インデックス0。逆インデックスモードは横軸インデックス0が最右です。
true | 逆インデックスモード |
false | 正インデックスモード |
TnbMfcLineGraphViewCtrl.h の 404 行目に定義があります。
|
inherited |
[設定] ウィンドウスタイル変更.
dwRemove | 除去するスタイルを指定する。 |
dwAdd | 追加するスタイルを指定する。 |
nFlags | SetWindowPos() に渡すフラグ。0なら SetWindowPos() を呼びません。 |
TRUE | 成功. |
FALSE | 失敗. |
|
inherited |
[設定] ウィンドウ拡張スタイル変更.
dwRemove | 除去する拡張スタイルを指定する。 |
dwAdd | 追加する拡張スタイルを指定する。 |
nFlags | SetWindowPos() に渡すフラグ。0なら SetWindowPos() を呼びません。 |
TRUE | 成功. |
FALSE | 失敗. |
|
protected |
[通知] 再構築要求通知.
TnbMfcLineGraphViewCtrl.h の 652 行目に定義があります。
|
protectedvirtual |
[通知] 表示用イメージ作成通知.
表示用のイメージを作成後に通知されます。 渡された pDC に描画することも可能です。
pDC | デバイスコンテキスト |
sz | デバイスコンテキストの大きさ |
TnbMfcLineGraphViewCtrl.h の 664 行目に定義があります。
|
protectedvirtual |
[通知] subclassing/unsubclassing functions.
サブクラス化する時コールされます。
TnbMfcLineGraphViewCtrl.h の 673 行目に定義があります。
void ReleaseImageDC | ( | void | ) |
bool SetBackgroundWidth | ( | COLORREF | backgroundColor, |
size_t | graphWidth = 0 |
||
) |
[設定] グラフ背景幅設定.
backgroundColor | 背景色 |
graphWidth | グラフのピクセル幅を指定します。クライアント幅より大きい場合、スクロールバーが表示されます。 省略するか0を指定すると、クライアント幅と同じになります。 |
true | 成功。 |
false | 失敗。 |
TnbMfcLineGraphViewCtrl.h の 175 行目に定義があります。
bool SetHorizontalIndexPixel | ( | int | pixel = 1 , |
bool | isReverseIndexMode = false |
||
) |
[設定] インデックスピクセル設定.
横軸インデックス1が何ピクセルかを指定できます。通常1ですが、例えば、ポイントマーカーを 3 ピクセル幅にしたら、 横軸も 3 ピクセル以上あけないとマーカーがかぶってしまいます。 そこでこのガイド設定をすることで、横軸インデックス指定時に意識することなく+1するだけでいいようになります。 SetPoint(), SetVerticalLine() , Shift() , SetViewHorizontalPos() に影響があります。
pixel | 横軸インデックス1が何ピクセルかを指定できます。 |
isReverseIndexMode | 省略か false なら横軸インデックス0が一番左、 true なら一番右になります。 |
true | 成功。 |
false | 失敗。 |
TnbMfcLineGraphViewCtrl.h の 217 行目に定義があります。
bool SetOverlayText | ( | INDEX | pos, |
COLORREF | color = RGB(0, 0, 0) , |
||
LPCTSTR | lpsz = NULL , |
||
HFONT | hFont = NULL |
||
) |
[設定] 文字列設定.
グラフの上に表示される文字を設定します。一度設定したら、取り消すまで表示されます。
pos | 位置を示す 1 〜 9(テンキーの並び)。 |
color | 文字の色。省略すると、表示取り消しになります。 |
lpsz | 文字。 |
hFont | フォント。本クラスで使用が終わるまで、破棄しないでください。 省略すると、コントロールに設定されているフォントが使用される。 |
true | 成功。 |
false | 失敗。 |
TnbMfcLineGraphViewCtrl.h の 385 行目に定義があります。
void SetPoint | ( | COLORREF | color, |
double | value, | ||
INDEX | horizontalIndex = 0 , |
||
bool | withContinuousLine = true |
||
) |
[設定] ポイント設定.
指定の横軸インデックス、縦軸値の位置に指定の色でポイントマーカーが描かれます。また、一つ前のポイントと連続線が引かれます。
color | 色。 |
value | 縦軸値。 |
horizontalIndex | 横軸インデックス。正インデックスモードなら 0 が一番左です。 |
withContinuousLine | true なら連続線を引きます。 false なら引きません。 |
TnbMfcLineGraphViewCtrl.h の 544 行目に定義があります。
size_t SetPointMakertSize | ( | size_t | width | ) |
[設定] ポイントマーカーサイズ設定.
width | 幅 |
TnbMfcLineGraphViewCtrl.h の 249 行目に定義があります。
void SetScaleLine | ( | COLORREF | color, |
ELineStyle | style = LineStyle_Solid |
||
) |
[設定] スケール線設定.
縦軸値0の位置に表示される線の設定をします。
color | 色 |
style | スタイル |
TnbMfcLineGraphViewCtrl.h の 344 行目に定義があります。
bool SetScrollBarHeight | ( | int | height = 0 | ) |
[設定] スクロールバー高さ.
height | 高さ(単位ピクセル)。0ならシステムの高さになります。マイナスなら、スクロールバーを出さないようにします。 |
true | 成功。 |
false | 失敗。 |
TnbMfcLineGraphViewCtrl.h の 311 行目に定義があります。
void SetScrollOneStep | ( | size_t | os = 1 | ) |
bool SetSubScaleLine | ( | INDEX | number, |
ELineStyle | style = LineStyle_Non , |
||
COLORREF | color = 0 , |
||
double | step = 0.0 |
||
) |
[設定] サブスケール線設定.
指定のステップごとに表示される線の設定をします。最大3つ指定できます。
number | サブスケール番号 1〜3 を指定できます。 |
style | スタイル |
color | 色 |
step | ステップ。 表示の縦軸値が -10000 〜 10000 の場合、1000 を指定するとスケール線の上下にそれぞれ、10本引かれます。 |
true | 成功。 |
false | 失敗。 |
TnbMfcLineGraphViewCtrl.h の 359 行目に定義があります。
void Settle | ( | bool | isForce = false | ) |
[設定] 確定.
設定情報を確定し、画面に反映させます。
isForce | true を指定すると、すぐに描画用イメージを作成します。通常、 省略か false を指定します(必要な時に作成する)。 |
TnbMfcLineGraphViewCtrl.h の 589 行目に定義があります。
void SetVerticalLine | ( | COLORREF | color, |
INDEX | horizontalIndex, | ||
int | length = -1 |
||
) |
[設定] 縦スケール設定.
指定の index に指定の色で縦線のスケールを書きます。
color | 色。 |
horizontalIndex | 横軸インデックス。正インデックスモードなら 0 が一番左です。 |
length | 中心線からの上下それぞれの長さ(pixel)。-1 なら上から下まで書かれます。 |
TnbMfcLineGraphViewCtrl.h の 561 行目に定義があります。
void SetViewHorizontalPos | ( | INDEX | pos | ) |
[設定] 水平表示位置設定.
pos | 表示位置。 |
TnbMfcLineGraphViewCtrl.h の 626 行目に定義があります。
bool SetViewValueRange | ( | double | topValue, |
double | bottomValue | ||
) |
[設定] 垂直表示範囲設定.
表示範囲を指定します。指定が無い場合、最上が 10000、最下が -10000 になります。
topValue | 最上の縦軸値 |
bottomValue | 最下の縦軸値 |
true | 成功。 |
false | 失敗。 |
TnbMfcLineGraphViewCtrl.h の 277 行目に定義があります。
|
inherited |
[設定] ウィンドウサイズポジション設定.
子ウィンドウ、ポップアップ ウィンドウ、およびトップレベル ウィンドウのサイズ、位置、および Z オーダーを変更します。
pWndInsertAfter | Z オーダーでこの CWnd オブジェクトより前に配置される CWnd オブジェクトを識別します。このパラメータへは、 CWnd へのポインタか 次の値のいずれか 1 つを指定できます。
|
x | ウィンドウの新しい左辺の位置を指定します。 |
y | ウィンドウの新しい上辺の位置を指定します。 |
cx | ウィンドウの新しい幅を指定します。 |
cy | ウィンドウの新しい高さを指定します。 |
nFlags | サイズ変更オプションおよび位置指定オプションを指定します。このパラメータには、次の値を組み合わせて指定できます。
|
TRUE | 成功. |
FALSE | 失敗. |
void Shift | ( | int | count = 1 | ) |
[移動] シフト.
指定数だけ、グラフをシフトします。
count | シフト数。省略すると1です。 |
TnbMfcLineGraphViewCtrl.h の 483 行目に定義があります。
|
inherited |
[設定] ウィンドウ表示状態.
nCmdShow | CWnd を表示する方法を指定します。次の値のいずれかになります。
|
TRUE | 成功. |
FALSE | 失敗. |
|
protectedvirtual |
[通知] for processing Windows messages.
メッセージ受信したらコールされます。
message | メッセージ |
wParam | WPARAM |
lParam | LPARAM |
TnbMfcLineGraphViewCtrl.h の 695 行目に定義があります。