Visualization Tool Kit(VTK)など

WTLではWindowクラスはtemplate <class Derived> CWindowImplを派生させて作成する.
さらに派生させたい場合,子のメッセージマップにCHAIN_MSG_MAP(Parent)を追加し,明示的に親クラスにメッセージを投げる必要がある.

class MyWindowBase : public CWindowImpl<MyWindowBase>
{
public:
  MyWindowBase() {}
  ~MyWindowBase() {}

BEGIN_MSG_MAP(vtkWTLWindow)
    MSG_WM_LBUTTONDBLCLK(OnLButtonDblClk)
    MSG_WM_LBUTTONDOWN(OnLButtonDown)
    MSG_WM_MBUTTONDOWN(OnMButtonDown)
    MSG_WM_RBUTTONDOWN(OnRButtonDown)
    MSG_WM_LBUTTONUP(OnLButtonUp)
    MSG_WM_MBUTTONUP(OnMButtonUp)
    MSG_WM_RBUTTONUP(OnRButtonUp)
    MSG_WM_MOUSEMOVE(OnMouseMove)
    MSG_WM_MOUSEWHEEL(OnMouseWheel)
    MSG_WM_CHAR(OnChar)
    MSG_WM_KEYUP(OnKeyUp)
    MSG_WM_KEYDOWN(OnKeyDown)
    MSG_WM_TIMER(OnTimer)
    MSG_WM_CREATE(OnCreate)
    MSG_WM_PAINT(OnPaint)
    MSG_WM_ERASEBKGND(OnEraseBkgnd)
    MSG_WM_SIZE(OnSize)
  END_MSG_MAP()

  //abbrv.

};

class MyWindow : public class MyWindowBase
{
  DECLARE_WND_SUPERCLASS(NULL, MyWindowBase::GetWndClassName())
public:
  BEGIN_MSG_MAP_EX(MyWindow)
    MSG_WM_CREATE(OnCreate)
    CHAIN_MSG_MAP(MyWindowBase)
  END_MSG_MAP()
 
};

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

メニュー

チュートリアル

アルゴリズム(数学)

並列計算

STL

#include<memory> #include<string> #include<sstream> #include<algorithm> #include<functional> #include<numeric>

Media Foundation

【メニュー編集】
Wiki記法ガイド

メンバーのみ編集できます