#pragma once #include "Manager.h" #include #include #include "common/locker.h" namespace SimplePluginsDrawingBoard { class DrawingBoardMgr : public CManager { public: DrawingBoardMgr(IOCPClient* ClientObject, int n, void* user = nullptr); ~DrawingBoardMgr(); virtual VOID OnReceive(PBYTE szBuffer, ULONG ulLength); void ParseRemoteText(PBYTE data, ULONG length); private: BYTE m_fAlpha; // 透明度: 0-全透明, 255-不透明 BOOL m_bTopMost; // 顶层 BOOL m_bIsWorking; // 线程状态 HWND m_hWnd; // 窗口 std::vector> m_Paths; // 历史路径集合,每条路径是一组点 std::vector m_CurrentPath; // 当前正在绘制的路径点集合 std::vector> m_Texts; HFONT m_Font; COLORREF m_textColor; HPEN m_DrawPen; CLocker m_locker; static DWORD WINAPI DrawingThreadProc(LPVOID lpParam); void RunWindowThread(); static LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); }; } // namespace SimplePluginsDrawingBoard