(new in Rev4.00)
MQWidgetBase クラスはボタン・チェックボックス・ウィンドウなどのすべての種類のウィジェットの基底となるクラスです。MQWidgetBaseを継承するクラスは以下のものがあります。
クラス名 | 概要 |
MQWindowBase | ウィンドウ・ダイアログの継承元クラス |
|- MQWindow | ウィンドウ |
|- MQDialog | ダイアログ |
MQFrameBase | 各フレームの継承元クラス |
|- MQFrame | フレーム |
|- MQGroupBox | グループボックス |
MQScrollBox | スクロール領域 |
MQTab | 複数ページの切り替え |
MQButton | ボタン |
MQCheckBox | チェックボックス |
MQRadioButton | ラジオボタン |
MQComboBox | コンボボックス |
MQListBox | リストボックス |
MQLabel | 文字列の表示 |
MQEdit | テキスト入力 |
MQMemo | 複数行のテキスト入力 |
MQSpinBox | 整数の数値入力 |
MQDoubleSpinBox | 実数の数値入力 |
MQSlider | スライダーの数値入力 |
MQScrollBar | スクロールバー |
MQColorPanel | 色入力 |
MQWidget.cpp および MQWidget.h をプロジェクトに追加することでクラスライブラリとして利用します。
クラス | |
MQWidgetBase | コンストラクタ |
~MQWidgetBase | デストラクタ |
メンバ関数 | |
GetID | ウィジェットIDの取得 |
AddChild | 子ウィジェットの追加 |
RemoveChild | 子ウィジェットの切り離し |
GetEnabled | 有効状態の取得 |
SetEnabled | 有効状態の設定 |
GetVisible | 表示状態の取得 |
SetVisible | 表示状態の設定 |
GetHorzLayout | 横方向のレイアウト状態取得 |
SetHorzLayout | 横方向のレイアウト状態設定 |
GetVertLayout | 縦方向のレイアウト状態取得 |
SetVertLayout | 縦方向のレイアウト状態設定 |
GetWidth | 横幅の取得 |
SetWidth | 横幅の設定 |
GetHeight | 縦幅の取得 |
SetHeight | 縦幅の設定 |
GetFillRateX | 横方向のフィル比率の取得 |
SetFillRateX | 横方向のフィル比率の設定 |
GetFillRateY | 縦方向のフィル比率の取得 |
SetFillRateY | 縦方向のフィル比率の設定 |
GetFillBeforeRate | 前方の余白フィル比率の取得 |
SetFillBeforeRate | 前方の余白フィル比率の設定 |
GetFillAfterRate | 後方の余白フィル比率の取得 |
SetFillAfterRate | 後方の余白フィル比率の設定 |
GetInSpace | 子ウィジェット間の隙間の取得 |
SetInSpace | 子ウィジェット間の隙間の設定 |
GetOutSpace | 子ウィジェット外側の隙間の取得 |
SetOutSpace | 子ウィジェット外側の隙間の設定 |
GetHintSizeRateX | 横幅のヒントサイズ取得 |
SetHintSizeRateX | 横幅のヒントサイズ設定 |
GetHintSizeRateY | 縦幅のヒントサイズ取得 |
SetHintSizeRateY | 縦幅のヒントサイズ設定 |
GetJustSize | 子ウィジェット全体がちょうど収まるサイズの取得 |
スタティック関数 | |
FindWidgetByID | IDからのウィジェットの検索 |
GetSystemWidgetID | システムウィジェットのID取得 |
GetDefaultFrameColor | 標準フレーム色の取得 |
イベント | |
AddLeftDownEvent | 左ボタンが押された時のイベントを追加 |
AddLeftUpEvent | 左ボタンが離された時のイベントを追加 |
AddLeftDoubleClickEvent | 左ボタンがダブルクリックされた時のイベントを追加 |
AddMiddleDownEvent | 中ボタンが押された時のイベントを追加 |
AddMiddleUpEvent | 中ボタンが離された時のイベントを追加 |
AddMiddleDoubleClickEvent | 中ボタンがダブルクリックされた時のイベントを追加 |
AddRightDownEvent | 右ボタンが押された時のイベントを追加 |
AddRightUpEvent | 右ボタンが離された時のイベントを追加 |
AddRightDoubleClickEvent | 右ボタンがダブルクリックされた時のイベントを追加 |
AddMouseMoveEvent | マウスが移動した時のイベントを追加 |
AddMouseWheelEvent | マウスホイールが回転した時のイベントを追加 |
AddKeyDownEvent | キーが押された時のイベントを追加 |
AddKeyUpEvent | キーが離された時のイベントを追加 |
MQWidgetBase::MQWidgetBase();
MQWidgetBase::MQWidgetBase(int id);
コンストラクタです。
virtual MQWidgetBase::~MQWidgetBase();
デストラクタです。仮想関数として定義されます。
int MQWidgetBase::GetID();
ウィジェットのIDを取得します。
int MQWidgetBase::AddChild(MQWidgetBase *child);
指定したウィジェットを子ウィジェットとして追加します。
追加された子ウィジェットは親ウィジェットが削除されるときに同時に削除されます。
childにはウィンドウ・ダイアログは指定できません。子ウィンドウ・ダイアログを追加するにはMQWindowBase::AddChildWindow()を参照してください。
void MQWidgetBase::RemoveChild(MQWidgetBase *child);
指定した子ウィジェットを切り離します。
切り離されたウィジェットは削除されませんので、後で明示的に削除する必要があります。
bool MQWidgetBase::GetEnabled();
ウィジェットが有効、または無効状態にあるかを取得します。
実際にウィジェットにメッセージが通知されるかどうかは親ウィジェットの有効状態も調べる必要があります。
void MQWidgetBase::SetEnabled(bool value);
ウィジェットを有効、または無効状態として指定します。
無効化されたウィジェットはマウスやキーボードなどのメッセージが通知されません。また、子ウィジェットも同時に無効化されます。
bool MQWidgetBase::GetVisible();
ウィジェットが表示、または非表示状態にあるかを取得します。
void MQWidgetBase::SetVisible(bool value);
ウィジェットを表示、または非表示状態として指定します。
LAYOUT_TYPE MQWidgetBase::GetHorzLayout();
横方向のサイズをどのように決定するかを取得します。
void MQWidgetBase::SetHorzLayout(LAYOUT_TYPE value);
横方向のサイズをどのように決定するかを指定します。
LAYOUT_TYPE MQWidgetBase::GetVertLayout();
縦方向のサイズをどのように決定するかを取得します。
void MQWidgetBase::SetVertLayout(LAYOUT_TYPE value);
縦方向のサイズをどのように決定するかを指定します。
int MQWidgetBase::GetWidth();
横幅をピクセル単位で取得します。
void MQWidgetBase::SetWidth(int value);
横幅をピクセル単位で指定します。
固定されたピクセル数が必要にならない限りは、この関数の使用は推奨されません。可能な限り SetHintSizeRateX() を使用してください。
int MQWidgetBase::GetHeight();
縦幅をピクセル単位で取得します。
void MQWidgetBase::SetHeight(int value);
縦幅をピクセル単位で指定します。
固定されたピクセル数が必要にならない限りは、この関数の使用は推奨されません。可能な限り SetHintSizeRateY() を使用してください。
double MQWidgetBase::GetFillRateX();
同じ親ウィジェット内に SetHorzLayout() で LAYOUT_FILL が指定されているウィジェットが複数あるときに、余白を埋めるための比率を取得します。
各ウィジェットのフィル比率の合計に対する割合によって横幅が決定されます。
デフォルト値は1です。
void MQWidgetBase::SetFillRateX(double value);
同じ親ウィジェット内に SetHorzLayout() で LAYOUT_FILL が指定されているウィジェットが複数あるときに、余白を埋めるための比率を指定します。
各ウィジェットのフィル比率の合計に対する割合によって横幅が決定されます。
デフォルト値は1です。
double MQWidgetBase::GetFillRateY();
同じ親ウィジェット内に SetVertLayout() で LAYOUT_FILL が指定されているウィジェットが複数あるときに、余白を埋めるための比率を取得します。
各ウィジェットのフィル比率の合計に対する割合によって縦幅が決定されます。
デフォルト値は1です。
void MQWidgetBase::SetFillRateY(double value);
同じ親ウィジェット内に SetVertLayout() で LAYOUT_FILL が指定されているウィジェットが複数あるときに、余白を埋めるための比率を指定します。
各ウィジェットのフィル比率の合計に対する割合によって縦幅が決定されます。
デフォルト値は1です。
double MQWidgetBase::GetFillBeforeRate();
このウィジェットの前方に余白を空けるための比率を取得します。
各ウィジェットでのフィル比率の合計に対する割合によって前方の余白が決定されます。
void MQWidgetBase::SetFillBeforeRate(double value);
このウィジェットの前方に余白を空けるための比率を指定します。
各ウィジェットでのフィル比率の合計に対する割合によって前方の余白が決定されます。
double MQWidgetBase::GetFillAfterRate();
このウィジェットの後方に余白を空けるための比率を取得します。
各ウィジェットでのフィル比率の合計に対する割合によって後方の余白が決定されます。
void MQWidgetBase::SetFillAfterRate(double value);
このウィジェットの後方に余白を空けるための比率を指定します。
各ウィジェットでのフィル比率の合計に対する割合によって後方の余白が決定されます。
double MQWidgetBase::GetInSpace();
子ウィジェットの間に空ける隙間をベースサイズに対する比率で取得します。
void MQWidgetBase::SetInSpace(double value);
子ウィジェットの間に空ける隙間をベースサイズに対する比率で指定します。
double MQWidgetBase::GetOutSpace();
子ウィジェットの外側に空ける隙間をベースサイズに対する比率で取得します。
void MQWidgetBase::SetOutSpace(double value);
子ウィジェットの外側に空ける隙間をベースサイズに対する比率で指定します。
double MQWidgetBase::GetHintSizeRateX();
ウィジェットの標準的なサイズをベースサイズに対する比率で取得します。
void MQWidgetBase::SetHintSizeRateX(double value);
ウィジェットの標準的なサイズをベースサイズに対する比率で設定します。
SetHorzLayout() で LAYOUT_HINTSIZE が指定されているときに、このヒントサイズに応じてウィジェットの横幅が決定されます。あくまでヒントなので、実際に設定されるサイズはウィジェットの種類や設定された各値によって異なります。
double MQWidgetBase::GetHintSizeRateY();
ウィジェットの標準的なサイズをベースサイズに対する比率で取得します。
void MQWidgetBase::SetHintSizeRateY(double value);
ウィジェットの標準的なサイズをベースサイズに対する比率で設定します。
SetVertLayout() で LAYOUT_HINTSIZE が指定されているときに、このヒントサイズに応じてウィジェットの縦幅が決定されます。あくまでヒントなので、実際に設定されるサイズはウィジェットの種類や設定された各値によって異なります。
POINT MQWidgetBase::GetJustSize(int max_width = -1, int max_height = -1);
子ウィジェットをちょうど収めるためのサイズを取得します。
max_width, max_height に-1を指定すると、上限がない状態でサイズが計算されます。
static MQWidgetBase *MQWidgetBase::FindWidgetByID(int id);
指定されたIDを持つウィジェットを取得します。
対応するウィジェットがなければNULLが返されます。
static int MQWidgetBase::GetSystemWidgetID(MQSystemWidget::WidgetType type);
本体側で作成されたウィジェットを取得します。
取得されたシステムウィジェットは基本的には子ウィンドウや子ウィジェットを作成するときに親ウィジェットとして指定します。システムウィジェットへむやみにアクセスすると思わぬ誤作動を引き起こす可能性があります。
static void MQWidgetBase::GetDefaultFrameColor(int& r, int& g, int& b, int& a);
標準のフレーム色を取得します。
template<typename T> void MQWidgetBase::AddLeftDownEvent(T *p, BOOL (T::*f)(MQWidgetBase*, MQDocument, MQWidgetMouseParam&), bool prior = false)
左ボタンが押されたときに発生されるイベントを追加します。
通知先のメンバ関数 f は以下の引数・戻り値を持ったものである必要があります。
BOOL T::f(MQWidgetBase* sender, MQDocument doc, MQWidgetMouseParam& param);
struct MQWidgetMouseParam { POINT ClientPos; POINT ScreenPos; POINT DownPos; POINT LastPos; int Wheel; bool LButton; bool MButton; bool RButton; bool Shift; bool Ctrl; bool Alt; };
template<typename T> void MQWidgetBase::AddLeftUpEvent(T *p, BOOL (T::*f)(MQWidgetBase*, MQDocument, MQWidgetMouseParam&), bool prior = false)
左ボタンが離されたときに発生されるイベントを追加します。
イベント通知先のメンバ関数はAddLeftDownEvent内の記述を参照してください。
template<typename T> void MQWidgetBase::AddLeftDoubleClickEvent(T *p, BOOL (T::*f)(MQWidgetBase*, MQDocument, MQWidgetMouseParam&), bool prior = false)
左ボタンがダブルクリックされたときに発生されるイベントを追加します。
イベント通知先のメンバ関数はAddLeftDownEvent内の記述を参照してください。
template<typename T> void MQWidgetBase::AddMiddleDownEvent(T *p, BOOL (T::*f)(MQWidgetBase*, MQDocument, MQWidgetMouseParam&), bool prior = false)
中ボタンが押されたときに発生されるイベントを追加します。
イベント通知先のメンバ関数はAddLeftDownEvent内の記述を参照してください。
template<typename T> void MQWidgetBase::AddMiddleUpEvent(T *p, BOOL (T::*f)(MQWidgetBase*, MQDocument, MQWidgetMouseParam&), bool prior = false)
中ボタンが離されたときに発生されるイベントを追加します。
イベント通知先のメンバ関数はAddLeftDownEvent内の記述を参照してください。
template<typename T> void MQWidgetBase::AddMiddleDoubleClickEvent(T *p, BOOL (T::*f)(MQWidgetBase*, MQDocument, MQWidgetMouseParam&), bool prior = false)
中ボタンがダブルクリックされたときに発生されるイベントを追加します。
イベント通知先のメンバ関数はAddLeftDownEvent内の記述を参照してください。
template<typename T> void MQWidgetBase::AddRightDownEvent(T *p, BOOL (T::*f)(MQWidgetBase*, MQDocument, MQWidgetMouseParam&), bool prior = false)
右ボタンが押されたときに発生されるイベントを追加します。
イベント通知先のメンバ関数はAddLeftDownEvent内の記述を参照してください。
template<typename T> void MQWidgetBase::AddRightUpEvent(T *p, BOOL (T::*f)(MQWidgetBase*, MQDocument, MQWidgetMouseParam&), bool prior = false)
右ボタンが離されたときに発生されるイベントを追加します。
イベント通知先のメンバ関数はAddLeftDownEvent内の記述を参照してください。
template<typename T> void MQWidgetBase::AddRightDoubleClickEvent(T *p, BOOL (T::*f)(MQWidgetBase*, MQDocument, MQWidgetMouseParam&), bool prior = false)
右ボタンがダブルクリックされたときに発生されるイベントを追加します。
イベント通知先のメンバ関数はAddLeftDownEvent内の記述を参照してください。
template<typename T> void MQWidgetBase::AddMouseMoveEvent(T *p, BOOL (T::*f)(MQWidgetBase*, MQDocument, MQWidgetMouseParam&), bool prior = false)
ウィジェット上をマウスが移動したときに発生されるイベントを追加します。
イベント通知先のメンバ関数はAddLeftDownEvent内の記述を参照してください。
template<typename T> void MQWidgetBase::AddMouseWheelEvent(T *p, BOOL (T::*f)(MQWidgetBase*, MQDocument, MQWidgetMouseParam&), bool prior = false)
ウィジェット上にマウスカーソルがある状態でマウスホイールを回転したときに発生されるイベントを追加します。
イベント通知先のメンバ関数はAddLeftDownEvent内の記述を参照してください。
template<typename T> void MQWidgetBase::AddKeyDownEvent(T *p, BOOL (T::*f)(MQWidgetBase*, MQDocument, MQWidgetKeyParam&), bool prior = false)
ウィジェット(またはウィンドウ)にフォーカスがある状態でキーが押されたときに発生されるイベントを追加します。
BOOL T::f(MQWidgetBase* sender, MQDocument doc, MQWidgetKeyParam& param);
struct MQWidgetKeyParam { int Key; bool AutoRepeat; bool LButton; bool MButton; bool RButton; bool Shift; bool Ctrl; bool Alt; };
template<typename T> void MQWidgetBase::AddKeyUpEvent(T *p, BOOL (T::*f)(MQWidgetBase*, MQDocument, MQWidgetKeyParam&), bool prior = false)
ウィジェット(またはウィンドウ)にフォーカスがある状態でキーが離されたときに発生されるイベントを追加します。
イベント通知先のメンバ関数はAddKeyDownEvent内の記述を参照してください。