1 #pragma once
2 
3 #include "Common/CommonWindows.h"
4 
5 class Dialog
6 {
7 public:
8 	Dialog(LPCSTR res, HINSTANCE _hInstance, HWND _hParent);
9 	virtual ~Dialog();
10 
11 	virtual void Show(bool _bShow, bool includeToTop = true);
Update()12 	virtual void Update() {}
13 
GetDlgHandle()14 	HWND GetDlgHandle() {
15 		return m_hDlg;
16 	}
17 protected:
18 	virtual void Create();
19 	void Destroy();
20 
21 	HWND m_hParent;
22 	HWND m_hDlg;
23 	LPCSTR m_hResource;
24 	bool m_bValid;
25 	UINT m_bShowState = SW_HIDE;
26 
27 	virtual BOOL DlgProc(UINT message, WPARAM wParam, LPARAM lParam) = 0;
28 	static INT_PTR CALLBACK DlgProcStatic(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
29 
30 private:
31 	HINSTANCE m_hInstance;
32 };
33 
34 
35 class DialogManager
36 {
37 public:
38 	static void AddDlg(Dialog *dialog);
39 	static void RemoveDlg(Dialog *dialog);
40 	static bool IsDialogMessage(LPMSG message);
41 	static void EnableAll(BOOL enable);
42 	static void DestroyAll();
43 	static void UpdateAll();
44 };
45