#pragma once #include "LogEdit.h" #include "BlButton.h" #include #include #define ID_MSG_LOGDLG_HIDE WM_USER + 1023 enum class FilterMode { Include, // Ö»±£ÁôÆ¥ÅäÐÐ Exclude // ÅųýÆ¥ÅäÐÐ }; // CPageLog ¶Ô»°¿ò class CPageLog : public CDialogEx { DECLARE_DYNAMIC(CPageLog) public: CPageLog(CWnd* pParent = NULL); // ±ê×¼¹¹Ô캯Êý virtual ~CPageLog(); private: void InitRxWindows(); void AppendLog(int level, const char* pszText); void Resize(); private: COLORREF m_crBkgnd; HBRUSH m_hbrBkgnd; IObserver* m_pObserver; int m_nLevel; CString m_strFilterText; BOOL m_bRegex; std::vector m_customIncludeTexts; private: CBlButton m_btnLevel; CBlButton m_btnInclude; CLogEdit m_logEdit; FilterMode m_filterMode; // ¶Ô»°¿òÊý¾Ý #ifdef AFX_DESIGN_TIME enum { IDD = IDD_DIALOG_LOG }; #endif protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV Ö§³Ö DECLARE_MESSAGE_MAP() public: virtual BOOL OnInitDialog(); afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg void OnDestroy(); afx_msg void OnClose(); afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); virtual BOOL PreTranslateMessage(MSG* pMsg); afx_msg void OnButtonLevelMenuClicked(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnButtonIncludeMenuClicked(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnEnChangeEditInclude(); afx_msg void OnBnClickedCheckRegex(); };