LIBURANIA
GUI library (a wrapper of Win32 API) in C++
読み取り中…
検索中…
一致する文字列を見つけられません
公開型 | 公開メンバ関数 | 全メンバ一覧
urania::WMHandler クラス

メッセージハンドラ基底 [詳解]

#include <window.h>

urania::WMHandler の継承関係図
urania::WMHandler 連携図

公開型

using CmdHandler = void (*)(Window*)
 コマンドハンドラ
 

公開メンバ関数

virtual ~WMHandler ()=default
 解體子
 
void setCommand (int cmdid, CmdHandler c)
 コマンドに對するハンドラを登録する
 
LRESULT operator() (urania::WndMessage *msg)
 メッセージに應じたハンドラを呼び出す
 
virtual bool onDestroy ()
 ウィンドウ破棄時のハンドラ
 
virtual bool onSize (Window *win, int typ, int w, int h)
 ウィンドウサイズ變化時のハンドラ
 
virtual bool onKeyDown (Window *win, int code, int rep, bool prev)
 キー押下時のハンドラ
 
virtual bool onLButtonDown (Window *win, int x, int y, bool ctrl, bool shft, bool lb, bool mb, bool rb)
 マウス左ボタン押下時のハンドラ
 
virtual bool onMButtonDown (Window *win, int x, int y, bool ctrl, bool shft, bool lb, bool mb, bool rb)
 マウス中ボタン押下時のハンドラ
 
virtual bool onRButtonDown (Window *win, int x, int y, bool ctrl, bool shft, bool lb, bool mb, bool rb)
 マウス右ボタン押下時のハンドラ
 
virtual void onPaint (BasicWindow *win, PaintDevice *pd)
 再描畫要求時のハンドラ
 
virtual void onScroll (Window *win, int id, int pos)
 スクロールバー操作時のハンドラ
 
virtual void onMouseWheel (Window *w, int delta, int keys, int x, int y)
 マウスホイール操作時のハンドラ
 
virtual void onDropFiles (Window *w, std::vector< std::wstring > &fa, int x, int y)
 ファイルドロップ時のハンドラ
 

詳解

メッセージハンドラ基底

型定義メンバ詳解

◆ CmdHandler

コマンドハンドラ

ウィンドウがWM_COMMANDを受け取つたときに呼び出される コマンドハンドラの型。 コマンドのID毎に必要な處理をハンドラとして實裝し、 WMHandler::regist()で登錄する。

構築子と解体子

◆ ~WMHandler()

virtual urania::WMHandler::~WMHandler ( )
virtualdefault

解體子

関数詳解

◆ onDestroy()

virtual bool urania::WMHandler::onDestroy ( )
inlinevirtual

ウィンドウ破棄時のハンドラ

ウィンドウが破棄されたときに呼び出されるハンドラ。 ライブラリのユーザは適宜オーバーライドして必要な處理を實裝する。

戻り値
デフォルトではfalseを返す。 オーバーライドする場合、有效な處理の後にはtrueを返すこと。

◆ onDropFiles()

virtual void urania::WMHandler::onDropFiles ( Window * w,
std::vector< std::wstring > & fa,
int x,
int y )
inlinevirtual

ファイルドロップ時のハンドラ

ファイルをドロップしたときに呼び出されるハンドラ。 ライブラリのユーザは適宜オーバーライドして必要な處理を實裝する。

引数
wウィンドウ
faファイル名のベクタ
xドロップ位置のX座標
yドロップ位置のY座標

◆ onKeyDown()

virtual bool urania::WMHandler::onKeyDown ( Window * win,
int code,
int rep,
bool prev )
inlinevirtual

キー押下時のハンドラ

キーが押下されたときに呼び出されるハンドラ。 ライブラリのユーザは適宜オーバーライドして必要な處理を實裝する。

引数
winウィンドウ
codeキーのコード
repリピート回數
prevメッセージが送られる前、キーが押されてゐたならtrue
戻り値
デフォルトではfalseを返す。 オーバーライドする場合、有效な處理の後にはtrueを返すこと。

◆ onLButtonDown()

virtual bool urania::WMHandler::onLButtonDown ( Window * win,
int x,
int y,
bool ctrl,
bool shft,
bool lb,
bool mb,
bool rb )
inlinevirtual

マウス左ボタン押下時のハンドラ

マウス左ボタンが押下されたときに呼び出されるハンドラ。 ライブラリのユーザは適宜オーバーライドして必要な處理を實裝する。

引数
winウィンドウ
xX座標
yY座標
ctrlCtrlキーが押されてゐるかどうか
shftShiftキーが押されてゐるかどうか
lb左ボタンが押されてゐるかどうか
mb中ボタンが押されてゐるかどうか
rb右ボタンが押されてゐるかどうか
戻り値
デフォルトではfalseを返す。 オーバーライドする場合、有效な處理の後にはtrueを返すこと。

◆ onMButtonDown()

virtual bool urania::WMHandler::onMButtonDown ( Window * win,
int x,
int y,
bool ctrl,
bool shft,
bool lb,
bool mb,
bool rb )
inlinevirtual

マウス中ボタン押下時のハンドラ

マウス中ボタンが押下されたときに呼び出されるハンドラ。 ライブラリのユーザは適宜オーバーライドして必要な處理を實裝する。

引数
winウィンドウ
xX座標
yY座標
ctrlCtrlキーが押されてゐるかどうか
shftShiftキーが押されてゐるかどうか
lb左ボタンが押されてゐるかどうか
mb中ボタンが押されてゐるかどうか
rb右ボタンが押されてゐるかどうか
戻り値
デフォルトではfalseを返す。 オーバーライドする場合、有效な處理の後にはtrueを返すこと。

◆ onMouseWheel()

virtual void urania::WMHandler::onMouseWheel ( Window * w,
int delta,
int keys,
int x,
int y )
inlinevirtual

マウスホイール操作時のハンドラ

マウスホイールを操作したときに呼び出されるハンドラ。 ライブラリのユーザは適宜オーバーライドして必要な處理を實裝する。

引数
wウィンドウ
delta廻轉量
keys押下されてゐるキー MK_CONTROL, MK_LBUTTON, MK_MBUTTON, MK_RBUTTON, MK_SHIFT, MK_XBUTTON1, MK_XBUTTON2 の論理和
xマウスカーソルのX座標
yマウスカーソルのY座標

◆ onPaint()

virtual void urania::WMHandler::onPaint ( BasicWindow * win,
PaintDevice * pd )
inlinevirtual

再描畫要求時のハンドラ

再描畫が要求されたときに呼び出されるハンドラ。 ライブラリのユーザは適宜オーバーライドして必要な處理を實裝する。

引数
winウィンドウ
pd再描畫用のPaintDevice。 呼び出し元が生成と破棄の責任を負ふので、 onPaint()の中で破棄してはならない。

◆ onRButtonDown()

virtual bool urania::WMHandler::onRButtonDown ( Window * win,
int x,
int y,
bool ctrl,
bool shft,
bool lb,
bool mb,
bool rb )
inlinevirtual

マウス右ボタン押下時のハンドラ

マウス右ボタンが押下されたときに呼び出されるハンドラ。 ライブラリのユーザは適宜オーバーライドして必要な處理を實裝する。

引数
winウィンドウ
xX座標
yY座標
ctrlCtrlキーが押されてゐるかどうか
shftShiftキーが押されてゐるかどうか
lb左ボタンが押されてゐるかどうか
mb中ボタンが押されてゐるかどうか
rb右ボタンが押されてゐるかどうか
戻り値
デフォルトではfalseを返す。 オーバーライドする場合、有效な處理の後にはtrueを返すこと。

◆ onScroll()

virtual void urania::WMHandler::onScroll ( Window * win,
int id,
int pos )
inlinevirtual

スクロールバー操作時のハンドラ

スクロールバーが操作されたときに呼び出されるハンドラ。 ライブラリのユーザは適宜オーバーライドして必要な處理を實裝する。

引数
winウィンドウ
idスクロールバーのID 水平スクロールバーはurania::ID_SBH 垂直スクロールバーはurania::ID_SBV 他の値(2以上の整數値)の場合はスクロールバーコントロール
posスクロールバーの位置

◆ onSize()

virtual bool urania::WMHandler::onSize ( Window * win,
int typ,
int w,
int h )
inlinevirtual

ウィンドウサイズ變化時のハンドラ

ウィンドウの大きさが變化したときに呼び出されるハンドラ。 ライブラリのユーザは適宜オーバーライドして必要な處理を實裝する。

引数
winウィンドウ
typサイズ變更のタイプ
w
h高さ
戻り値
デフォルトではfalseを返す。 オーバーライドする場合、有效な處理の後にはtrueを返すこと。

◆ operator()()

LRESULT urania::WMHandler::operator() ( urania::WndMessage * msg)

メッセージに應じたハンドラを呼び出す

引数
msgメッセージ
呼び出し関係図:

◆ setCommand()

void urania::WMHandler::setCommand ( int cmdid,
CmdHandler c )
inline

コマンドに對するハンドラを登録する

引数
cmdidコマンドのID
cハンドラ

このクラス詳解は次のファイルから抽出されました: