#ifndef _COMMON_MDIWIN_HPP_ #define _COMMON_MDIWIN_HPP_ #ifndef _COMMON_GUIWINDOW_HPP_ #include #endif #ifndef _COMMON_SMARTPOINTER_HPP_ #include #endif #ifndef _COMMON_PUREMENU_HPP_ #include #endif class FrameWindow; class MDIWindow; typedef SmartPointer PMDIWindow; class MDIWindow : public GUIWindow { public: MDIWindow(void); virtual ~MDIWindow(); BOOL createWindow(FrameWindow &frameWindow,const String &className,const String &windowName=String(),const String &menuName=String(),const String &iconName=String()); PureMenu &getMenu(void); const String &className(void)const; SmartPointer getFrame(void)const; protected: virtual void preRegister(WNDCLASS &wndClass); virtual void preCreate(MDICREATESTRUCT &createStruct); private: int windowProcedure(HWND hWnd,WORD message,WPARAM wParam,LPARAM lParam); void registerClass(HINSTANCE hInstance,const String &className,const String &menuName,const String &iconName); BOOL createWindow(HINSTANCE hInstance,const String &className,const String &windowName,const String &menuName); void mdiActivate(CallbackData &someCallbackData); SmartPointer mFrameWindow; PureMenu mViewMenu; String mClassName; }; inline PureMenu &MDIWindow::getMenu(void) { return mViewMenu; } inline const String &MDIWindow::className(void)const { return mClassName; } inline SmartPointer MDIWindow::getFrame(void)const { return mFrameWindow; } #endif