MQListBoxクラス

(new in Rev4.00)

MQListBox クラスはリストを表示するウィジェットを管理します。MQWidgetBaseクラスを継承しています。

継承元クラスで定義されるメンバ関数はそのクラスの記述を参照してください。

クラス
MQListBox コンストラクタ
~MQListBox デストラクタ
メンバ関数
GetCurrentIndex カレントインデックスの取得
SetCurrentIndex カレントインデックスの設定
BeginUpdate 更新の開始宣言
EndUpdate 更新の終了宣言
AddItem 項目の追加
DeleteItem 項目の削除
ClearItems 項目の全消去
GetItemCount 項目数の取得
GetItem 項目の取得
SetItem 項目の設定
GetItemTag 項目の任意値の取得
SetItemTag 項目の任意値の設定
GetItemSelected 項目の選択状態の取得
SetItemSelected 項目の選択状態の設定
GetItemHint 項目のヒント文字列の取得
SetItemHint 項目のヒント文字列の設定
SetItemDIB 項目のDIB画像の設定
GetVisibleRow 表示行数の取得
SetVisibleRow 表示行数の取得
GetLineHeightRate 一行の高さの割合取得
SetLineHeightRate 一行の高さの割合設定
GetVertScrollVisible 縦スクロールバーの表示取得
SetVertScrollVisible 縦スクロールバーの表示設定
GetMultiSelect 複数選択の可否取得
SetMultiSelect 複数選択の可否設定
GetListStyle 表示スタイルの取得
SetListStyle 表示スタイルの設定
GetIconSizeRate アイコンの表示サイズ比取得
SetIconSizeRate アイコンの表示サイズ比設定
ClearSelection 全選択解除
MakeItemVisible 指定項目を可視領域内に表示
HitTestItem 指定した位置にある項目を取得
GetItemRect 項目の位置・サイズを取得
イベント
AddChangedEvent 状態が変更された時のイベントを追加
AddDrawItemEvent 項目の描画時のイベントを追加

MQListBox::MQListBox();

MQListBox::MQListBox(int id);

id
プラグイン外で生成されたウィジェットのID

コンストラクタです。


virtual MQListBox::~MQListBox();

デストラクタです。仮想関数として定義されます。


int MQListBox::GetCurrentIndex();

戻り値
カレントインデックス

現在選択されている項目の番号を取得します。


void MQListBox::SetCurrentIndex(int value);

value
カレントインデックス

現在選択されている項目の番号を設定します。


void MQListBox::BeginUpdate();

項目の更新開始を宣言します。

この関数を呼び出した後、項目の追加・削除が終わったらEndUpdate()を呼び出す必要があります。

この関数は必ずしも呼び出す必要はありませんが、多くの項目を追加・削除する際の更新処理が高速化され、また更新前後でのスクロール位置が出来る限り保持されます。


void MQListBox::EndUpdate();

項目の更新終了を宣言します。

BeginUpdate()を呼び出した後、項目の追加・削除が終わったらこの関数を呼び出す必要があります。


int MQListBox::AddItem(const std::wstring& text);

int MQListBox::AddItem(const std::wstring& text, __int64 tag);

text
追加する項目の文字列
tag
任意の数値
戻り値
追加された項目のインデックス

項目を追加します。

項目には表示される文字列とは別に任意の値を割り当てることができます。



void MQListBox::DeleteItem(int index);

index
削除する項目のインデックス

指定したインデックスの項目を削除します。

削除したインデックス以降の番号の項目は一つずつインデックスが繰り上がります。


void MQListBox::ClearItems();

すべての項目を削除します。


int MQListBox::GetItemCount();

戻り値
項目数

項目の数を取得します。


std::wstring MQListBox::GetItem(int index);

index
項目のインデックス
戻り値
文字列

指定した項目の文字列を取得します。


void MQListBox::SetItem(int index, const std::wstring& text);

index
項目のインデックス
text
文字列

指定した項目の文字列を設定します。


__int64 MQListBox::GetItemTag(int index);

index
項目のインデックス
戻り値
任意の値

指定した項目に割り当てられた任意の値を取得します。


void MQListBox::SetItemTag(int index, __int64 tag);

index
項目のインデックス
tag
任意の値

指定した項目に任意の値を割り当てます。


bool MQListBox::GetItemSelected(int index);

index
項目のインデックス
戻り値
選択状態

指定した項目の選択状態を取得します。

複数選択の状態を取得するにはSetMultiSelection()で複数選択できるようにしておく必要があります。


void MQListBox::SetItemSelected(int index, bool selected);

index
項目のインデックス
selected
選択状態

指定した項目に選択状態を設定します。

複数選択の状態を取得するにはSetMultiSelection()で複数選択できるようにしておく必要があります。


std::wstring MQListBox::GetItemHint(int index);

index
項目のインデックス
戻り値
ヒント文字列

指定した項目のヒント文字列を取得します。


void MQListBox::SetItemHint(int index, const std::wstring& hint);

index
項目のインデックス
hint
ヒント文字列

指定した項目のヒント文字列を設定します。


void MQListBox::SetItemDIB(int index, void *header, void *buffer);

index
項目のインデックス
header
DIBヘッダ
buffer
DIBバッファ

(new in Rev4.69)

指定した項目のDIB画像を設定します。


int MQListBox::GetVisibleRow();

戻り値
表示する行数

高さの計算時に用いる表示行数を取得します。

実際に表示される行数とは必ずしも一致しません。


void MQListBox::SetVisibleRow(int value);

value
表示する行数

高さの計算時に用いる表示行数を設定します。

実際に表示される行数とは必ずしも一致しません。


double MQListBox::GetLineHeightRate();

戻り値
標準の高さに対する割合

一行の高さを標準の高さに対する割合で取得します。


void MQListBox::SetLineHeightRate(double value);

value
標準の高さに対する割合

一行の高さを標準の高さに対する割合で設定します。


bool MQListBox::GetVertScrollVisible();

戻り値
縦スクロールバーの表示

縦スクロールバーを表示するかどうか取得します。


void MQListBox::SetVertScrollVisible(bool value);

value
縦スクロールバーの表示

縦スクロールバーを表示するかを設定します。


bool MQListBox::GetMultiSelect();

戻り値
複数選択の可否

複数選択をできるかどうか取得します。


void MQListBox::SetMultiSelect(bool value);

value
複数選択の可否

複数選択をできるかどうかを設定します。


MQListBox::MQListBoxStyle MQListBox::GetListStyle();

戻り値
表示スタイル
[STYLE_NORMAL] 通常のリスト表示
[STYLE_ICON] アイコンをメインに表示
[STYLE_ICON_ONLY] アイコンのみを表示

(new in Rev4.69)

リストをどう表示するかを取得します。


void MQListBox::SetListStyle(MQListBoxStyle style);

style
表示スタイル
[STYLE_NORMAL] 通常のリスト表示
[STYLE_ICON] アイコンをメインに表示
[STYLE_ICON_ONLY] アイコンのみを表示

(new in Rev4.69)

リストをどう表示するかを設定します。


double MQListBox::GetIconSizeRate();

戻り値
サイズ比率

(new in Rev4.69)

アイコンの表示サイズを標準サイズに対する比率で指定します。


void MQListBox::SetIconSizeRate(double value);

value
サイズ比率

(new in Rev4.69)

アイコンの表示サイズを標準サイズに対する比率で指定します。


void MQListBox::ClearSelection();

複数選択用の選択状態をすべて解除します。


void MQListBox::MakeItemVisible(int index);

index
項目のインデックス

指定したインデックスの項目が画面のリスト領域内に表示されるようスクロール位置を調整します。


int MQListBox::HitTestItem(int x, int y);

x
X座標(クライアント座標系)
y
Y座標(クライアント座標系)
戻り値
項目のインデックス

(new in Rev4.40)

指定した位置にある項目のインデックスを取得します。指定した位置に項目がない場合は-1が返ります。


void MQListBox::GetItemRect(int index, int& x, int& y, int& w, int& h);

index
項目のインデックス
x
左上のX座標
y
左上のY座標
w
横幅
h
縦幅

(new in Rev4.40)

指定した項目の位置・サイズを取得します。


template<typename T> void MQListBox::AddChangedEvent(T *p, BOOL (T::*f)(MQWidgetBase*, MQDocument), bool prior = false)

p
イベント通知先のウィジェット
f
イベント通知先のメンバ関数
prior
イベントの通知順序
[true] 最初に通知されるよう指定
[false] 最後に通知されるよう指定

ユーザーの操作により状態が変更されたときに発生されるイベントを追加します。


template<typename T> void MQListBox::AddDrawItemEvent(T *p, BOOL (T::*f)(MQWidgetBase*, MQDocument, MQListBoxDrawItemParam&), bool prior = false)

p
イベント通知先のウィジェット
f
イベント通知先のメンバ関数
prior
イベントの通知順序
[true] 最初に通知されるよう指定
[false] 最後に通知されるよう指定

個々の項目が描画されるときに発生されるイベントを追加します。

BOOL T::f(MQWidgetBase* sender, MQDocument doc, MQListBoxDrawItemParam& param);

sender
イベント通知元のウィジェット
doc
ドキュメント
param
イベント発生時のパラメータ(下記参照)
戻り値
[TRUE] 通常の描画を行わずに終了する
[FALSE] 文字などの通常描画を行う

param内のXとWidthを変更してFALSEを返すことで、文字などの描画位置を変更することができます。

struct MQListBoxDrawItemParam {
	MQCanvas *Canvas;
	int ItemIndex;
	int X;
	int Y;
	int Width;
	int Height;
};
Canvas
描画キャンバス
ItemIndex
項目のインデックス
X
描画範囲のX座標
Y
描画範囲のY座標
Width
描画範囲の横幅
Height
描画範囲の縦幅