123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #pragma once
- // 添加要在此处预编译的标头
- #include "CcosThread.h"
- using SMDlgCallback = std::function<void(string, string)>;
- struct stuWindowElement
- {
- stuWindowElement() {};
- stuWindowElement(string type, string name, DWORD style, int posX, int posY, int sizeX, int sizeY, int show) :
- m_strClassName(type), m_strWindowName(name), m_nStyle(style), m_nPosX(posX), m_nPosY(posY), m_nXsize(sizeX), m_nYsize(sizeY), m_nShow(show) {};
- HWND m_hHandle{ nullptr }; //元素句柄
- string m_strClassName; //类型名称
- string m_strWindowName; //元素名称
- DWORD m_nStyle{ WS_CHILD | WS_VISIBLE }; //样式
- int m_nPosX{ 0 }; //x轴位置
- int m_nPosY{ 0 }; //y轴位置
- int m_nXsize{ 0 }; //x宽度
- int m_nYsize{ 0 }; //y宽度
- int m_nShow{ SW_SHOW }; //是否显示
- };
- class SMachineDlg : public Work_Thread
- {
- typedef map<HWND, SMachineDlg*> CallMap;
- public:
- SMachineDlg(string title,string windowClass, SMDlgCallback object);
- ~SMachineDlg();
- HWND GetWindowHandle(); //获取句柄
- static LRESULT CALLBACK WndTotalProc(HWND, UINT, WPARAM, LPARAM); //窗口函数
- void SetJumpMode(int mode); //0:auto, 2;manual
- void SetWaitEventList(string& text); //打印等待事件列表
- void SetRunHistory(string& text); //打印运行历史
- protected:
- ATOM RegisterWindowClass(HINSTANCE hInstance = NULL); //注册窗口类
- HWND OpenWindow(int nCmdShow); //创建窗口
- void CreateUIElement(HWND& hMainWnd); //创建按钮、对话框
- bool CloseWindow(); //销毁窗口
- bool Exec() override;
- bool OnStartThread() override;
- bool OnEndThread() override;
- private:
- SMDlgCallback m_DlgCallback{ nullptr }; //调用主体回调
- HANDLE m_ExitFlag{ nullptr }; //轮询线程退出句柄
- HWND m_hWnd{ nullptr }; //窗口句柄
- string m_strTitle; //标题栏文本
- string m_strWindowClass; //主窗口类名
- static CallMap g_HandleDlgMap; //消息处理窗口句柄集
- //元素句柄
- map<int, stuWindowElement> m_ElementMap; //元素列表
- };
|