wxAUIのサンプル
wxEvtHandler::Connectは普通のマクロを使った場合は
Connect(wxEVT_MOVE, wxMoveEventHandler(Move::OnMove));
のように記述するがこれは
this->Connect(wxEVT_MOVE, wxMoveEventHandler(Move::OnMove));
であり、thisに来たwxEVT_MOVEをthis->OnMoveと連結するという意味になる。
hogeにきたwxEVT_MOVEをfugaのOnMoveメソッドに連結する
(イベントの受信と実行するオブジェクトが違う場合)
という記述はマクロを取っ払って
hoge->Connect(wxEVT_MOVE
, (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(
wxMoveEventFunction, &Move::OnMove), NULL, fuga);
というややこしい書き方になる。
早くboost::bindみたいなのを取り入れてもらいたい。
時間の問題だとは思うけど。
勘違い。動かないことは無いがよろしくない書き方になっていた。
後ろに引数を追加する。
// hogeに来たwxEVT_MOVEをfuga->OnMoveで処理する hoge->Connect(wxEVT_MOVE, wxMoveEventHandler(Move::OnMove), NULL, fuga);
以下は、wxAUIでイベントハンドリングに
wxEvtHandler::Connectを使った場合のメモ。
wxAuiManagerEventはマニュアルに何も書いてないのでさっさとヘッダを見るのが近道。