From 0026ea3b1a6588f3e40b8276162f54b2a22bc7ae Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期一, 19 一月 2026 14:32:27 +0800
Subject: [PATCH] 1.修复 : 多 PJ 支持仍是单槽实现:isProcessJobsEmpty/validate 仍只允许 1 个 PJ/CJ;Host 一次下多 PJ 或运行中追加 PJ 会被拒绝/无明确反馈。需要:协议上明示只支持 1,或补齐 ACK/NAK 与队列管理、PJobSpace 动态更新。
---
SourceCode/Bond/Servo/CHMPropertyPage.cpp | 72 ++++++++++++++++++++++++++++++++++++
1 files changed, 72 insertions(+), 0 deletions(-)
diff --git a/SourceCode/Bond/Servo/CHMPropertyPage.cpp b/SourceCode/Bond/Servo/CHMPropertyPage.cpp
index 3591ec4..f5626b6 100644
--- a/SourceCode/Bond/Servo/CHMPropertyPage.cpp
+++ b/SourceCode/Bond/Servo/CHMPropertyPage.cpp
@@ -18,3 +18,75 @@
{
}
+
+void CHMPropertyPage::OnCreateBtns()
+{
+
+}
+
+CButton* CHMPropertyPage::CreateBtn(const char* name, int w, int h, const UINT id)
+{
+ std::string key = std::string(name);
+ auto it = m_btns.find(key);
+ if (it != m_btns.end()) {
+ return it->second;
+ }
+
+ CButton* pBtn = new CButton();
+ pBtn->Create(name, WS_CHILD, CRect(0, 0, w, h), GetParent(), id);
+ // 浣跨敤榛樿GUI瀛椾綋
+ HFONT hFont = (HFONT)::GetStockObject(DEFAULT_GUI_FONT);
+ if (hFont != nullptr) {
+ pBtn->SetFont(CFont::FromHandle(hFont), FALSE);
+ }
+ ::SetProp(pBtn->GetSafeHwnd(), _T("BTN_ORDER"), (HANDLE)(INT_PTR)m_btnOrderSeq++);
+ m_btns[key] = pBtn;
+ return pBtn;
+}
+
+CButton* CHMPropertyPage::GetBtnByName(const char* name)
+{
+ auto it = m_btns.find(std::string(name));
+ if (it != m_btns.end()) {
+ return it->second;
+ }
+ return nullptr;
+}
+
+std::map<std::string, CButton*>& CHMPropertyPage::getBtns()
+{
+ return m_btns;
+}
+
+void CHMPropertyPage::HandleBtnClick(HWND hBtn)
+{
+ for (auto& kv : m_btns) {
+ if (kv.second != nullptr && kv.second->GetSafeHwnd() == hBtn) {
+ OnClickedBtn(kv.first.c_str());
+ break;
+ }
+ }
+}
+
+BEGIN_MESSAGE_MAP(CHMPropertyPage, CDialogEx)
+ ON_WM_DESTROY()
+END_MESSAGE_MAP()
+
+void CHMPropertyPage::OnDestroy()
+{
+ CDialogEx::OnDestroy();
+
+ for (auto& kv : m_btns) {
+ CButton* btn = kv.second;
+ if (btn != nullptr) {
+ if (::IsWindow(btn->GetSafeHwnd())) {
+ ::RemoveProp(btn->GetSafeHwnd(), _T("BTN_ORDER"));
+ }
+ if (::IsWindow(btn->GetSafeHwnd())) {
+ btn->DestroyWindow();
+ }
+ delete btn;
+ }
+ }
+ m_btns.clear();
+}
--
Gitblit v1.9.3