// 基底クラス
class CBaseWindow : public CWindowImpl<CBaseWindow>
{
BEGIN_MSG_MAP(CBaseWindow)
MESSAGE_HANDLER(WM_ACTIVATE, OnActivate)
MESSAGE_HANDLER(WM_SETTINGCHANGE, OnSettingChange)
MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
END_MSG_MAP()
LRESULT OnActivate(UINT, WPARAM, LPARAM, BOOL&){
SHFullScreen(m_hWnd, SHFS_HIDESIPBUTTON);
return 0;
}
LRESULT OnSettingChange(UINT, WPARAM, LPARAM, BOOL&){
SHFullScreen(m_hWnd, SHFS_HIDESIPBUTTON);
return 0;
}
LRESULT OnDestroy(UINT, WPARAM, LPARAM, BOOL&){
PostQuitMessage(0);
return 0;
}
};
// 派生クラス
class CMessageWindow : public CBaseWindow
{
BEGIN_MSG_MAP(CMessageWindow)
MESSAGE_HANDLER(WM_LBUTTONDOWN, OnButtonDown)
END_MSG_MAP()
LRESULT OnButtonDown(UINT, WPARAM, LPARAM, BOOL&){
MessageBox(_T("Hello!"));
return 0;
}
};
|