#ifndef _COMMON_DWINDOW_HPP_ #define _COMMON_DWINDOW_HPP_ #ifndef _COMMON_WINDOWS_HPP_ #include #endif #ifndef _COMMON_SMARTPOINTER_HPP_ #include #endif #ifndef _COMMON_GUIWINDOW_HPP_ #include #endif class Rect; class String; class DWindow : public GUIWindow { public: DWindow(void); virtual ~DWindow(); bool createDialogParam(GUIWindow &frameWindow,GUIWindow &parentWindow,const String &strTemplate,LPARAM param); bool createDialogParam(GUIWindow &parentWindow,const String &strTemplate,LPARAM param); HWND getItem(int controlID)const; LRESULT sendMessage(DWORD controlID,UINT message,WPARAM wParam,LPARAM lParam)const; LRESULT postMessage(DWORD controlID,UINT message,WPARAM wParam,LPARAM lParam)const; void setText(UINT controlID,const String &setText)const; WORD getText(UINT controlID,String &textString)const; String getText(UINT controlID)const; BOOL setInt(UINT controlID,int value)const; BOOL getInt(UINT controlID,int &value)const; WORD enable(UINT controlID,WORD isEnabled)const; void setFocus(UINT controlID)const; bool show(UINT controlID,int nCmdShow=SW_SHOW)const; protected: void endDialog(WORD returnCode); virtual int windowProcedure(HWND hWnd,WORD message,WPARAM wParam,LPARAM lParam); private: DWindow(const DWindow &someDWindow); DWindow &operator=(const DWindow &someDWindow); SmartPointer mFrameWindow; }; inline DWindow::DWindow(void) { } inline DWindow::DWindow(const DWindow &someDWindow) : GUIWindow(someDWindow) // private implementation { } inline DWindow &DWindow::operator=(const DWindow &someDWindow) { // private implementation return *this; } inline HWND DWindow::getItem(int controlID)const { if(!isValid())return FALSE; return ::GetDlgItem(*this,controlID); } inline void DWindow::setFocus(UINT controlID)const { ::SetFocus(getItem(controlID)); } inline bool DWindow::show(UINT controlID,int nCmdShow)const { return ::ShowWindow(getItem(controlID),nCmdShow); } inline LRESULT DWindow::sendMessage(DWORD controlID,UINT message,WPARAM wParam,LPARAM lParam)const { if(!isValid())return FALSE; return ::SendMessage(getItem(controlID),message,wParam,lParam); } inline LRESULT DWindow::postMessage(DWORD controlID,UINT message,WPARAM wParam,LPARAM lParam)const { if(!isValid())return FALSE; return ::PostMessage(::GetDlgItem(*this,controlID),message,wParam,lParam); } inline WORD DWindow::enable(UINT controlID,WORD isEnabled)const { return ::EnableWindow(::GetDlgItem(*this,controlID),isEnabled); } inline void DWindow::endDialog(WORD returnCode) { if(isValid())::EndDialog((HWND)*this,returnCode); } #endif