WinImplBase.h 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. #ifndef WIN_IMPL_BASE_HPP
  2. #define WIN_IMPL_BASE_HPP
  3. namespace DuiLib
  4. {
  5. enum UILIB_RESOURCETYPE
  6. {
  7. UILIB_FILE=1, // 来自磁盘文件
  8. UILIB_ZIP, // 来自磁盘zip压缩包
  9. UILIB_RESOURCE, // 来自资源
  10. UILIB_ZIPRESOURCE, // 来自资源的zip压缩包
  11. };
  12. class UILIB_API WindowImplBase
  13. : public CWindowWnd
  14. , public CNotifyPump
  15. , public INotifyUI
  16. , public IMessageFilterUI
  17. , public IDialogBuilderCallback
  18. {
  19. public:
  20. WindowImplBase();
  21. virtual ~WindowImplBase(){};
  22. virtual void InitWindow(){};
  23. virtual void OnFinalMessage( HWND hWnd );
  24. virtual void Notify(TNotifyUI& msg);
  25. //------------------------add---------------------------
  26. UINT DoModal (HWND hParent = nullptr);
  27. template<class ControlTy_ = CControlUI>
  28. ControlTy_* const FindControl (LPCTSTR lpstrName)
  29. {
  30. auto pControl = m_PaintManager.FindControl( lpstrName );
  31. //assert( nullptr != pControl );
  32. return reinterpret_cast<ControlTy_*>(pControl);
  33. };
  34. #define DUI_OBJ(obj_name) auto obj_name = WindowImplBase::FindControl(L#obj_name)
  35. #define DUI_OBJ_EXT(obj_name,obj_type) auto obj_name = WindowImplBase::FindControl<obj_type>(L#obj_name)
  36. #define DECLARE_DUI_FILE(_dir,_xml,_unused) \
  37. public: \
  38. DuiLib::CDuiString GetSkinFolder () {return L#_dir;}; \
  39. DuiLib::CDuiString GetSkinFile () {return L#_xml;};
  40. #define DECLARE_DUI_ZIP(_dir,_xml,_zip) \
  41. public: \
  42. DuiLib::CDuiString GetSkinFolder () {return L#_dir;}; \
  43. DuiLib::CDuiString GetSkinFile () {return L#_xml;}; \
  44. DuiLib::CDuiString GetZIPFileName () const{return L#_zip;}; \
  45. UILIB_RESOURCETYPE GetResourceType() const{return UILIB_FILE;};
  46. #define DECLARE_DUI_SKIN(_dir,_xml,_zip) \
  47. public: \
  48. DuiLib::CDuiString GetSkinFolder () {return _dir;}; \
  49. DuiLib::CDuiString GetSkinFile () {return L#_xml;}; \
  50. DuiLib::CDuiString GetZIPFileName () const{return L#_zip;}; \
  51. UILIB_RESOURCETYPE GetResourceType() const{return UILIB_FILE;};
  52. //#ifdef _DEBUG
  53. //#define DELCARE_DUI_RES DECLARE_DUI_FILE
  54. //#else
  55. //#define DECLARE_DUI_RES DECLARE_DUI_ZIP
  56. //#endif
  57. //----------------------------end---------------------------------;
  58. DUI_DECLARE_MESSAGE_MAP()
  59. virtual void OnClick(TNotifyUI& msg);
  60. protected:
  61. virtual CDuiString GetSkinFolder () = 0;
  62. virtual CDuiString GetSkinFile () = 0;
  63. //virtual LPCTSTR GetWindowClassName(void) const = 0;
  64. virtual LPCTSTR GetWindowClassName () const;
  65. virtual LRESULT ResponseDefaultKeyEvent(WPARAM wParam);
  66. CPaintManagerUI m_PaintManager;
  67. static LPBYTE m_lpResourceZIPBuffer;
  68. public:
  69. virtual UINT GetClassStyle() const;
  70. virtual UILIB_RESOURCETYPE GetResourceType() const;
  71. virtual CDuiString GetZIPFileName() const;
  72. virtual LPCTSTR GetResourceID() const;
  73. virtual CControlUI* CreateControl(LPCTSTR pstrClass);
  74. virtual LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM /*lParam*/, bool& /*bHandled*/);
  75. virtual LRESULT OnClose(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled);
  76. virtual LRESULT OnDestroy(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled);
  77. #if defined(WIN32) && !defined(UNDER_CE)
  78. virtual LRESULT OnNcActivate(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& bHandled);
  79. virtual LRESULT OnNcCalcSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
  80. virtual LRESULT OnNcPaint(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
  81. virtual LRESULT OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
  82. virtual LRESULT OnGetMinMaxInfo(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
  83. virtual LRESULT OnMouseWheel(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled);
  84. virtual LRESULT OnMouseHover(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
  85. #endif
  86. virtual LRESULT OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
  87. virtual LRESULT OnChar(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
  88. virtual LRESULT OnSysCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
  89. virtual LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
  90. virtual LRESULT OnKeyDown(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled);
  91. virtual LRESULT OnKillFocus(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled);
  92. virtual LRESULT OnSetFocus(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled);
  93. virtual LRESULT OnLButtonDown(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled);
  94. virtual LRESULT OnLButtonUp(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled);
  95. virtual LRESULT OnMouseMove(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled);
  96. virtual LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam);
  97. virtual LRESULT HandleCustomMessage(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
  98. virtual LONG GetStyle();
  99. };
  100. }
  101. #endif // WIN_IMPL_BASE_HPP