| ¶Ô±ÈÐÂÎļþ |
| | |
| | | // CPageRecipe.cpp: å®ç°æä»¶ |
| | | // |
| | | |
| | | #include "stdafx.h" |
| | | #include "Servo.h" |
| | | #include "afxdialogex.h" |
| | | #include "PageRecipe.h" |
| | | #include "SECSRuntimeManager.h" |
| | | |
| | | |
| | | // CPageRecipe å¯¹è¯æ¡ |
| | | |
| | | IMPLEMENT_DYNAMIC(CPageRecipe, CDialogEx) |
| | | |
| | | CPageRecipe::CPageRecipe(CWnd* pParent /*=nullptr*/) |
| | | : CDialogEx(IDD_PAGE_RECIPE, pParent) |
| | | { |
| | | |
| | | } |
| | | |
| | | CPageRecipe::~CPageRecipe() |
| | | { |
| | | } |
| | | |
| | | void CPageRecipe::FillDataToListCtrl(const std::vector<std::string>& vecData) { |
| | | CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST_PPID); |
| | | if (pListCtrl == nullptr || pListCtrl->m_hWnd == nullptr) { |
| | | return; |
| | | } |
| | | |
| | | // æ¸
空å½åCListCtrlä¸çææé¡¹ |
| | | pListCtrl->DeleteAllItems(); |
| | | |
| | | // éåæ°æ®å¹¶æå
¥å°CListCtrlä¸ |
| | | for (int i = 0; i < static_cast<int>(vecData.size()); ++i) { |
| | | // æå
¥è¡ |
| | | pListCtrl->InsertItem(i, _T("")); |
| | | |
| | | // 设置 Recipe Noï¼ç¬¬1åï¼ |
| | | CString strRecipeNo; |
| | | strRecipeNo.Format(_T("%d"), i); |
| | | pListCtrl->SetItemText(i, 1, strRecipeNo); |
| | | |
| | | // 设置 PPIDï¼ç¬¬2åï¼ |
| | | CString strPPID = CA2T(vecData[i].c_str()); |
| | | if (strPPID.CompareNoCase(_T("NULL")) == 0) { |
| | | strPPID.Empty(); |
| | | } |
| | | pListCtrl->SetItemText(i, 2, strPPID); |
| | | } |
| | | |
| | | // è·ååæ° |
| | | int nColCount = pListCtrl->GetHeaderCtrl()->GetItemCount(); |
| | | pListCtrl->SetColumnWidth(nColCount - 1, LVSCW_AUTOSIZE_USEHEADER); |
| | | } |
| | | |
| | | void CPageRecipe::DoDataExchange(CDataExchange* pDX) |
| | | { |
| | | CDialogEx::DoDataExchange(pDX); |
| | | DDX_Control(pDX, IDC_LIST_PPID, m_listPPID); |
| | | DDX_Control(pDX, IDC_EDIT_PPID, m_editPPID); |
| | | } |
| | | |
| | | |
| | | BEGIN_MESSAGE_MAP(CPageRecipe, CDialogEx) |
| | | ON_BN_CLICKED(IDC_BUTTON_SEARCH, &CPageRecipe::OnBnClickedButtonSearch) |
| | | ON_BN_CLICKED(IDC_BUTTON_MODIFY, &CPageRecipe::OnBnClickedButtonModify) |
| | | ON_BN_CLICKED(IDC_BUTTON_DELETE, &CPageRecipe::OnBnClickedButtonDelete) |
| | | ON_BN_CLICKED(IDC_BUTTON_DELETE_ALL, &CPageRecipe::OnBnClickedButtonDeleteAll) |
| | | ON_BN_CLICKED(IDC_BUTTON_SAVE, &CPageRecipe::OnBnClickedButtonSave) |
| | | ON_BN_CLICKED(IDC_BUTTON_REFRESH, &CPageRecipe::OnBnClickedButtonRefresh) |
| | | ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST_PPID, &CPageRecipe::OnLvnItemChangedListPPID) |
| | | END_MESSAGE_MAP() |
| | | |
| | | |
| | | // CPageRecipe æ¶æ¯å¤çç¨åº |
| | | |
| | | BOOL CPageRecipe::OnInitDialog() |
| | | { |
| | | CDialogEx::OnInitDialog(); |
| | | |
| | | // TODO: 卿¤æ·»å é¢å¤çåå§å |
| | | CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST_PPID); |
| | | DWORD dwStyle = pListCtrl->GetExtendedStyle(); |
| | | dwStyle |= LVS_EX_FULLROWSELECT; |
| | | dwStyle |= LVS_EX_GRIDLINES; |
| | | pListCtrl->SetExtendedStyle(dwStyle); |
| | | |
| | | HIMAGELIST imageList = ImageList_Create(24, 24, ILC_COLOR24, 1, 1); |
| | | ListView_SetImageList(pListCtrl->GetSafeHwnd(), imageList, LVSIL_SMALL); |
| | | pListCtrl->InsertColumn(0, _T(""), LVCFMT_RIGHT, 0); |
| | | pListCtrl->InsertColumn(1, _T("Recipe No"), LVCFMT_LEFT, 100); |
| | | pListCtrl->InsertColumn(2, _T("PPID"), LVCFMT_LEFT, 100); |
| | | pListCtrl->SetColumnWidth(2, LVSCW_AUTOSIZE_USEHEADER); |
| | | |
| | | // è·åæææ°æ® |
| | | auto vecData = SECSRuntimeManager::getInstance().getAllPPID(); |
| | | FillDataToListCtrl(vecData); |
| | | |
| | | return TRUE; // return TRUE unless you set the focus to a control |
| | | // å¼å¸¸: OCX 屿§é¡µåºè¿å FALSE |
| | | } |
| | | |
| | | void CPageRecipe::OnBnClickedButtonSearch() |
| | | { |
| | | // TODO: 卿¤æ·»å æ§ä»¶éç¥å¤çç¨åºä»£ç |
| | | CString strInput; |
| | | m_editPPID.GetWindowText(strInput); |
| | | |
| | | int nCount = m_listPPID.GetItemCount(); |
| | | for (int i = 0; i < nCount; ++i) { |
| | | CString strItemText = m_listPPID.GetItemText(i, 2); // 第2å为PPID |
| | | if (strItemText == strInput) { |
| | | m_listPPID.SetItemState(i, LVIS_SELECTED, LVIS_SELECTED); |
| | | m_listPPID.EnsureVisible(i, FALSE); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | void CPageRecipe::OnBnClickedButtonModify() |
| | | { |
| | | // TODO: 卿¤æ·»å æ§ä»¶éç¥å¤çç¨åºä»£ç |
| | | POSITION pos = m_listPPID.GetFirstSelectedItemPosition(); |
| | | if (!pos) return; |
| | | |
| | | int nSel = m_listPPID.GetNextSelectedItem(pos); |
| | | |
| | | CString strNewPPID; |
| | | m_editPPID.GetWindowText(strNewPPID); |
| | | m_listPPID.SetItemText(nSel, 2, strNewPPID); |
| | | } |
| | | |
| | | void CPageRecipe::OnBnClickedButtonDelete() |
| | | { |
| | | // TODO: 卿¤æ·»å æ§ä»¶éç¥å¤çç¨åºä»£ç |
| | | POSITION pos = m_listPPID.GetFirstSelectedItemPosition(); |
| | | if (!pos) return; |
| | | |
| | | int nSel = m_listPPID.GetNextSelectedItem(pos); |
| | | m_listPPID.SetItemText(nSel, 2, _T("")); |
| | | } |
| | | |
| | | void CPageRecipe::OnBnClickedButtonDeleteAll() |
| | | { |
| | | // TODO: 卿¤æ·»å æ§ä»¶éç¥å¤çç¨åºä»£ç |
| | | int nCount = m_listPPID.GetItemCount(); |
| | | for (int i = 0; i < nCount; ++i) { |
| | | m_listPPID.SetItemText(i, 2, _T("")); |
| | | } |
| | | } |
| | | |
| | | void CPageRecipe::OnBnClickedButtonSave() |
| | | { |
| | | // TODO: 卿¤æ·»å æ§ä»¶éç¥å¤çç¨åºä»£ç |
| | | std::vector<std::string> vecPPID; |
| | | int nCount = m_listPPID.GetItemCount(); |
| | | for (int i = 0; i < nCount; ++i) { |
| | | CString str = m_listPPID.GetItemText(i, 2); |
| | | vecPPID.emplace_back(CT2A(str)); |
| | | } |
| | | SECSRuntimeManager::getInstance().setAllPPID(vecPPID); |
| | | } |
| | | |
| | | void CPageRecipe::OnBnClickedButtonRefresh() |
| | | { |
| | | // TODO: 卿¤æ·»å æ§ä»¶éç¥å¤çç¨åºä»£ç |
| | | auto vecData = SECSRuntimeManager::getInstance().getAllPPID(); |
| | | FillDataToListCtrl(vecData); |
| | | } |
| | | |
| | | void CPageRecipe::OnLvnItemChangedListPPID(NMHDR* pNMHDR, LRESULT* pResult) |
| | | { |
| | | LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR); |
| | | *pResult = 0; |
| | | |
| | | if ((pNMLV->uChanged & LVIF_STATE) && |
| | | (pNMLV->uNewState & LVIS_SELECTED)) { |
| | | |
| | | int nItem = pNMLV->iItem; |
| | | CString strPPID = m_listPPID.GetItemText(nItem, 2); |
| | | m_editPPID.SetWindowText(strPPID); |
| | | } |
| | | } |