From df4d0e875ccfe40add25100a75dedee54e566aaa Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期四, 18 九月 2025 09:06:24 +0800
Subject: [PATCH] 1.CConrolJobManagerDlg临时数据存储。
---
SourceCode/Bond/Servo/CCjPage2.cpp | 138 +++++++++++++++++++++++++++++++--------------
1 files changed, 95 insertions(+), 43 deletions(-)
diff --git a/SourceCode/Bond/Servo/CCjPage2.cpp b/SourceCode/Bond/Servo/CCjPage2.cpp
index b736ba4..e827a19 100644
--- a/SourceCode/Bond/Servo/CCjPage2.cpp
+++ b/SourceCode/Bond/Servo/CCjPage2.cpp
@@ -32,6 +32,10 @@
ON_WM_DESTROY()
ON_EN_CHANGE(IDC_EDIT_PJ_ID, &CCjPage2::OnEnChangeEditPjId)
ON_CBN_SELCHANGE(IDC_COMBO_RECIPE, &CCjPage2::OnCbnSelchangeComboRecipe)
+ ON_BN_CLICKED(IDC_RADIO1, &CCjPage2::OnBnClickedRadio1)
+ ON_BN_CLICKED(IDC_RADIO2, &CCjPage2::OnBnClickedRadio2)
+ ON_BN_CLICKED(IDC_RADIO3, &CCjPage2::OnBnClickedRadio3)
+ ON_BN_CLICKED(IDC_RADIO4, &CCjPage2::OnBnClickedRadio4)
END_MESSAGE_MAP()
@@ -43,50 +47,32 @@
UpdatePjData();
}
+void CCjPage2::SetPjWarps(std::vector<PJWarp>& pjs)
+{
+ m_pjWarps = pjs;
+}
+
BOOL CCjPage2::OnInitDialog()
{
CCjPageBase::OnInitDialog();
- // 鑻ヤ綘鐨勮祫婧愰噷鏈変竴涓崰浣嶇殑 ListCtrl锛堟瘮濡� IDC_LIST1锛夛紝杩欓噷鍋氬瓙绫诲寲锛�
- m_selector.SubclassDlgItem(IDC_LIST_SELECTOR, this);
+ m_grid.SubclassDlgItem(IDC_GRID1, this);
+ m_grid.InitGrid(4, 8);
+ m_grid.SetColumnWidths(100, 220);
+ m_grid.SetRowHeight(28);
+ m_grid.SetHeaderHeight(32);
+ m_grid.EnableColumnResize(FALSE); // 绂佹鎷栧姩鍒楀
- // 鍒濆鍖栵細4 鍒� 脳 8 琛�
- m_selector.InitGrid(4, 8);
- m_selector.SetColumnWidths(100, 180);
- m_selector.SetRowHeight(36);
-
- // 璁剧疆鍒椾俊鎭�
- m_selector.SetPortInfo(0, _T("Port 1"), _T("Carrier A"));
- m_selector.SetPortInfo(1, _T("Port 2"), _T("Carrier B"));
- m_selector.SetPortInfo(2, _T("Port 3"), _T("Carrier C"));
- m_selector.SetPortInfo(3, _T("Port 4"), _T("Carrier D"));
-
- // 璁剧疆閮ㄥ垎 Glass锛堟牳蹇僆D鍥哄畾锛�
- m_selector.SetSlotGlass(0, 0, TRUE, _T("001"), CCarrierSlotSelector::MAT_G1);
- m_selector.SetSlotGlass(0, 1, TRUE, _T("002"), CCarrierSlotSelector::MAT_G1);
- m_selector.SetSlotGlass(0, 3, TRUE, _T("004"), CCarrierSlotSelector::MAT_G1);
-
- m_selector.SetSlotGlass(1, 0, TRUE, _T("101"), CCarrierSlotSelector::MAT_G2);
- m_selector.SetSlotGlass(1, 1, TRUE, _T("102"), CCarrierSlotSelector::MAT_G2);
- m_selector.SetSlotGlass(1, 2, TRUE, _T("103"), CCarrierSlotSelector::MAT_G2);
- m_selector.SetSlotGlass(1, 5, TRUE, _T("106"), CCarrierSlotSelector::MAT_G2);
- m_selector.SetSlotGlass(1, 7, TRUE, _T("108"), CCarrierSlotSelector::MAT_G2);
-
- m_selector.SetSlotGlass(2, 5, TRUE, _T("206"), CCarrierSlotSelector::MAT_G1);
- m_selector.SetSlotGlass(2, 6, TRUE, _T("207"), CCarrierSlotSelector::MAT_G1);
- m_selector.SetSlotGlass(2, 7, TRUE, _T("208"), CCarrierSlotSelector::MAT_G1);
-
- m_selector.SetSlotGlass(3, 0, TRUE, _T("301"), CCarrierSlotSelector::MAT_G1);
-
- // 閿佸畾 Port 1锛堢ず渚嬶級
- m_selector.SetPortAllocated(0, TRUE, _T("ProcessJob 1"));
+ m_grid.SetPortInfo(0, _T("Port 1"), _T(""));
+ m_grid.SetPortInfo(1, _T("Port 2"), _T(""));
+ m_grid.SetPortInfo(2, _T("Port 3"), _T(""));
+ m_grid.SetPortInfo(3, _T("Port 4"), _T(""));
UpdatePjData();
-
-
- ;
+
+
return TRUE; // return TRUE unless you set the focus to a control
// 寮傚父: OCX 灞炴�ч〉搴旇繑鍥� FALSE
}
@@ -101,25 +87,49 @@
void CCjPage2::Resize()
{
CCjPageBase::Resize();
- /*
+
+
CWnd* pItem;
CRect rcClient, rcItem;
GetClientRect(&rcClient);
- pItem = GetDlgItem(IDC_LABEL_TITLE);
+ pItem = GetDlgItem(IDC_GRID1);
pItem->GetWindowRect(&rcItem);
- pItem->MoveWindow(12, 8, rcClient.Width() - 24, rcItem.Height());
- */
+ ScreenToClient(rcItem);
+
+ // 璁╂帶浠剁獥鍙e昂瀵歌嚜鍔ㄥ尮閰嶅綋鍓嶅垪瀹�/琛屾暟锛堜笉鍑虹幇婊氬姩鏉★級
+ if (::IsWindow(m_grid.m_hWnd)) {
+ CSize best = m_grid.CalcBestWindowSize(TRUE); // 璁$畻鍒板惈闈炲鎴峰尯鐨勬渶缁堢獥鍙eぇ灏�
+ pItem->MoveWindow(rcItem.left, rcItem.top, best.cx, best.cy);
+ pItem->Invalidate();
+ }
}
void CCjPage2::OnApply()
{
//SERVO::CProcessJob*
if (m_pContext == nullptr) return;
- SERVO::CProcessJob* pProcessJob = (SERVO::CProcessJob*)m_pContext;
+ PJWarp* pPjWarp = (PJWarp*)m_pContext;
+ SERVO::CProcessJob* pProcessJob = (SERVO::CProcessJob*)pPjWarp->pj;
// 鏇存柊鍚嶇О
+ BOOL bOkName = TRUE;
char szBuffer[256];
GetDlgItemText(IDC_EDIT_PJ_ID, szBuffer, 256);
+ for (auto item : m_pjWarps) {
+ if (item.pj != m_pContext) {
+ SERVO::CProcessJob* temp = (SERVO::CProcessJob*)item.pj;
+ if (temp->id().compare(std::string(szBuffer)) == 0) {
+ bOkName = FALSE;
+ break;
+ }
+ }
+ }
+ if (!bOkName) {
+ AfxMessageBox("涓嶈兘浣跨敤鍜屽叾瀹働rocess Job鐩稿悓鐨処D");
+ return;
+ }
+
+
pProcessJob->setId(std::string(szBuffer));
// 鏇存柊閰嶆柟
@@ -139,8 +149,6 @@
}
-
-
ContentChanged(1);
}
@@ -156,11 +164,23 @@
}
if (m_pContext) {
- SERVO::CProcessJob* pProcessJob = (SERVO::CProcessJob*)m_pContext;
+ PJWarp* pPjWarp = (PJWarp*)m_pContext;
+ SERVO::CProcessJob* pProcessJob = (SERVO::CProcessJob*)pPjWarp->pj;
SetDlgItemText(IDC_EDIT_PJ_ID, pProcessJob->id().c_str());
int idx = pComboBox->FindStringExact(-1, pProcessJob->recipeSpec().c_str());
if (idx != CB_ERR) pComboBox->SetCurSel(idx);
}
+
+ // 绀轰緥锛氳缃甈ort淇℃伅銆侀攣鍒椼�佸~鍏匞lass
+ /*
+ m_grid.SetPortInfo(0, _T("Port 1"), _T(""));
+ m_grid.SetPortInfo(1, _T("Port 2"), _T(""));
+ m_grid.SetPortInfo(2, _T("Port 3"), _T("Carrier C"));
+ m_grid.SetPortInfo(3, _T("Port 4"), _T("Carrier D"));
+ m_grid.SetPortAllocated(2, TRUE, _T("ProcessJob 1"));
+ m_grid.SetSlotGlass(0, 0, TRUE, _T("A00123"), CCarrierSlotGrid::MAT_G1);
+ m_grid.SetSlotGlass(0, 1, TRUE, _T("A00124"), CCarrierSlotGrid::MAT_G1);
+ */
m_bContentChangedLock = FALSE;
}
@@ -174,3 +194,35 @@
{
ContentChanged(0);
}
+
+void CCjPage2::OnBnClickedRadio1()
+{
+ m_grid.SetPortAllocated(0, FALSE, _T(""));
+ m_grid.SetPortAllocated(1, TRUE, _T(""));
+ m_grid.SetPortAllocated(2, TRUE, _T(""));
+ m_grid.SetPortAllocated(3, TRUE, _T(""));
+}
+
+void CCjPage2::OnBnClickedRadio2()
+{
+ m_grid.SetPortAllocated(0, TRUE, _T(""));
+ m_grid.SetPortAllocated(1, FALSE, _T(""));
+ m_grid.SetPortAllocated(2, TRUE, _T(""));
+ m_grid.SetPortAllocated(3, TRUE, _T(""));
+}
+
+void CCjPage2::OnBnClickedRadio3()
+{
+ m_grid.SetPortAllocated(0, TRUE, _T(""));
+ m_grid.SetPortAllocated(1, TRUE, _T(""));
+ m_grid.SetPortAllocated(2, FALSE, _T(""));
+ m_grid.SetPortAllocated(3, TRUE, _T(""));
+}
+
+void CCjPage2::OnBnClickedRadio4()
+{
+ m_grid.SetPortAllocated(0, TRUE, _T(""));
+ m_grid.SetPortAllocated(1, TRUE, _T(""));
+ m_grid.SetPortAllocated(2, TRUE, _T(""));
+ m_grid.SetPortAllocated(3, FALSE, _T(""));
+}
--
Gitblit v1.9.3