#ifndef _DIALOG_DYNAMICDIALOG_HPP_ #define _DIALOG_DYNAMICDIALOG_HPP_ #ifndef _COMMON_WINDOWS_HPP_ #include #endif #ifndef _COMMON_DWINDOW_HPP_ #include #endif #ifndef _COMMON_CALLBACK_HPP_ #include #endif #ifndef _DIALOG_DIALOGITEMTEMPLATE_HPP_ #include #endif #ifndef _DIALOG_DIALOGTEMPLATE_HPP_ #include #endif class DynamicDialog : public DWindow { public: enum DialogType{ModalDialog,ModelessDialog}; DynamicDialog(void); virtual ~DynamicDialog(); void createDialog(HWND hParentWnd,DialogTemplate &someDialogTemplate,DialogType typeDialog=ModalDialog); void createDialog(DialogTemplate &someDialogTemplate,DialogType typeDialog=ModalDialog); protected: virtual WORD dlgCommand(DWORD commandID,CallbackData &someCallbackData); virtual WORD dlgCode(CallbackData &someCallbackData); virtual BOOL dlgInitDialog(CallbackData &someCallbackData); virtual void dlgDestroyDialog(CallbackData &someCallbackData); private: DynamicDialog(const DynamicDialog &someDynamicDialog); CallbackData::ReturnType initDialogHandler(CallbackData &someCallbackData); CallbackData::ReturnType closeHandler(CallbackData &someCallbackData); CallbackData::ReturnType destroyHandler(CallbackData &someCallbackData); CallbackData::ReturnType dialogCodeHandler(CallbackData &someCallbackData); CallbackData::ReturnType commandHandler(CallbackData &someCallbackData); Callback mInitDialogHandler; Callback mCloseHandler; Callback mDestroyHandler; Callback mDialogCodeHandler; Callback mCommandHandler; }; #endif