bool hide_window(){ return show_window(false); }
bool set_text(lpctstr_t text){ return ( ::SetWindowText(m_hWnd, text) == TRUE ); }
};
-
+
//
const char* control::standard_class::button = "BUTTON";
const char* control::standard_class::edit_box = "EDIT";
class message_callback_base
{
protected:
- // If returns false, the window is destroyed and the control::start() returns false.
- virtual bool OnCreate(::LPCREATESTRUCT lpCreateStruct){ return true; }
+ virtual bool OnClose(){ return true; }
+ virtual bool OnCreate(::LPCREATESTRUCT lpCreateStruct){ return true; } // If returns false, the window is destroyed and the control::start() returns false.
virtual void OnDestroy(){ ::PostQuitMessage( 0 ); }
+ virtual void OnMove(unsigned short x, unsigned short y){}
private:
HWND m_hWnd;
switch( msg )
{
+ case WM_CLOSE:
+ if ( OnClose() )
+ ::DestroyWindow(m_hWnd);
+ return 0;
+
case WM_CREATE:
return ( OnCreate((::LPCREATESTRUCT)lParam) ? 0 : -1 );
case WM_DESTROY:
OnDestroy();
return 0;
+
+ case WM_MOVE:
+ OnMove(LOWORD(lParam), HIWORD(lParam));
+ return 0;
}
return ::DefWindowProc( hWnd, msg, wParam, lParam );