| | |
| | | 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() |
| | | |
| | | |
| | |
| | | UpdatePjData(); |
| | | } |
| | | |
| | | void CCjPage2::SetExclusionNames(std::vector<std::string>& names) |
| | | { |
| | | m_exclusionNames = names; |
| | | } |
| | | |
| | | 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(核心ID固定) |
| | | 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 |
| | | } |
| | |
| | | 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); |
| | | |
| | | // 让控件窗口尺寸自动匹配当前列宽/行数(不出现滚动条) |
| | | if (::IsWindow(m_grid.m_hWnd)) { |
| | | CSize best = m_grid.CalcBestWindowSize(TRUE); // 计算到含非客户区的最终窗口大小 |
| | | pItem->MoveWindow(rcItem.left, rcItem.top, best.cx, best.cy); |
| | | pItem->Invalidate(); |
| | | } |
| | | } |
| | | |
| | | void CCjPage2::OnApply() |
| | |
| | | SERVO::CProcessJob* pProcessJob = (SERVO::CProcessJob*)m_pContext; |
| | | |
| | | // 更新名称 |
| | | BOOL bOkName = TRUE; |
| | | char szBuffer[256]; |
| | | GetDlgItemText(IDC_EDIT_PJ_ID, szBuffer, 256); |
| | | for (auto item : m_exclusionNames) { |
| | | if (item.compare(std::string(szBuffer)) == 0) { |
| | | bOkName = FALSE; |
| | | break; |
| | | } |
| | | } |
| | | if (!bOkName) { |
| | | AfxMessageBox("不能使用和其它Process Job相同的ID"); |
| | | return; |
| | | } |
| | | |
| | | |
| | | pProcessJob->setId(std::string(szBuffer)); |
| | | |
| | | // 更新配方 |
| | |
| | | |
| | | pProcessJob->setRecipe(SERVO::RecipeMethod::NoTuning, recipe); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | ContentChanged(1); |
| | |
| | | if (idx != CB_ERR) pComboBox->SetCurSel(idx); |
| | | } |
| | | |
| | | // 示例:设置Port信息、锁列、填充Glass |
| | | /* |
| | | 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; |
| | | } |
| | | |
| | |
| | | { |
| | | 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("")); |
| | | } |