LAPTOP-T815PCOQ\25526
2025-01-13 f068115ebf6f12b7e9c9d96b46b061a5c7bc42ac
1. 移出自定义输入限制编辑框
2. 轴设定的编辑框做输入限制
已修改5个文件
已删除2个文件
467 ■■■■■ 文件已修改
SourceCode/Bond/BoounionPLC/AxisDetailSettingsDlg.cpp 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/BoounionPLC/AxisSettingsDlg.cpp 203 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/BoounionPLC/AxisSettingsDlg.h 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/BoounionPLC/BoounionPLC.vcxproj 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/BoounionPLC/BoounionPLC.vcxproj.filters 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/BoounionPLC/RegexEdit.cpp 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/BoounionPLC/RegexEdit.h 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/BoounionPLC/AxisDetailSettingsDlg.cpp
@@ -460,6 +460,16 @@
    strTitle.Format(_T("轴细部设定(PLC: %s)"), m_pPLC->getName().c_str());
    SetWindowText(strTitle);
    // ä¸å¯ç¼–辑
    GetDlgItem(IDC_EDIT_AXIS_MODITFY_POS_MIN)->EnableWindow(FALSE);
    GetDlgItem(IDC_EDIT_AXIS_MODITFY_AUTO_SPEED_MIN)->EnableWindow(FALSE);
    GetDlgItem(IDC_EDIT_AXIS_MODITFY_ACCE_TIME_MIN)->EnableWindow(FALSE);
    GetDlgItem(IDC_EDIT_AXIS_MODITFY_ACCE_TIME_MAX)->EnableWindow(FALSE);
    GetDlgItem(IDC_EDIT_AXIS_MODITFY_DECE_TIME_MIN)->EnableWindow(FALSE);
    GetDlgItem(IDC_EDIT_AXIS_MODITFY_DECE_TIME_MAX)->EnableWindow(FALSE);
    GetDlgItem(IDC_EDIT_AXIS_MODITFY_MICROMENTUM_MIN)->EnableWindow(FALSE);
    GetDlgItem(IDC_EDIT_AXIS_MODITFY_MICROMENTUM_MAX)->EnableWindow(FALSE);
    // èŽ·å–è½´æ•°æ®
    auto axisDetails = m_pAxisManager->GetAxis(m_nAxisNO);
    if (axisDetails.id == -1) {
SourceCode/Bond/BoounionPLC/AxisSettingsDlg.cpp
@@ -8,6 +8,7 @@
#include "AxisDetailSettingsDlg.h"
#include "ToolUnits.h"
#include <cctype>
#include <regex>
#define COLOR_GREEN_ON    RGB(0, 255, 0)  // æ­£å¸¸çŠ¶æ€ç»¿è‰²
@@ -53,10 +54,6 @@
        m_pBlBtns[i] = new CBlButton();
    }
    for (int i = 0; i < EDIT_MAX; i++) {
        m_pRegexEdit[i] = new CRegexEdit();
    }
    for (int i = 0; i < LABEL_MAX; i++) {
        m_pBlLabels[i] = new CBLLabel();
    }
@@ -73,10 +70,6 @@
{
    for (int i = 0; i < BTN_MAX; i++) {
        delete m_pBlBtns[i];
    }
    for (int i = 0; i < EDIT_MAX; i++) {
        delete m_pRegexEdit[i];
    }
    for (int i = 0; i < LABEL_MAX; i++) {
@@ -179,24 +172,6 @@
    SetLabelColorBasedOnState(*m_pBlLabels[LABEL_ERR], m_bErr, COLOR_RED, COLOR_GREEN_OFF);
}
void CAxisSettingsDlg::UpdateRegexEdit(CRegexEdit* pRegexEdit, const ValueRange& range, const CString& title)
{
    auto formatDouble = [](double value) -> CString {
        CString str;
        str.Format(_T("%.3f"), value);
        return str;
    };
    pRegexEdit->SetWindowText(formatDouble(range.currentValue));
    pRegexEdit->SetRegexType(RegexType::Decimal);
    pRegexEdit->SetValueRange(range.minValue, range.maxValue);
    pRegexEdit->SetInvalidInputCallback([title, range]() {
        CString strError;
        strError.Format(_T("%s的值必须在 %.3f å’Œ %.3f ä¹‹é—´ï¼"), title, range.minValue, range.maxValue);
        AfxMessageBox(strError);
    });
}
void CAxisSettingsDlg::UpdatePageButtonStates()
{
    for (int i = 0; i < AXIS_PAGE_SIZE; ++i) {
@@ -270,11 +245,11 @@
    m_staticAxisDescription.SetWindowText(CString(axisDetails.description.c_str()));    // è½´æè¿°
    m_staticStartAddress.SetWindowText(CString(axisDetails.startAddress.c_str()));        // èµ·å§‹åœ°å€
    UpdateRegexEdit(m_pRegexEdit[EDIT_MICROMENTUM], axisDetails.jogDistance, _T("微动量"));
    UpdateRegexEdit(m_pRegexEdit[EDIT_MANUAL_SPEED], axisDetails.manualSpeed, _T("手动速度"));
    UpdateRegexEdit(m_pRegexEdit[EDIT_AUTO_SPEED], axisDetails.autoSpeed, _T("自动速度"));
    UpdateRegexEdit(m_pRegexEdit[EDIT_ACCE_TIME], axisDetails.accelerationTime, _T("加速时间"));
    UpdateRegexEdit(m_pRegexEdit[EDIT_DECE_TIME], axisDetails.decelerationTime, _T("减速时间"));
    GetDlgItem(IDC_EDIT_AXIS_MODITFY_MANUAL_SPEED)->SetWindowText(formatDouble(axisDetails.manualSpeed.currentValue));
    GetDlgItem(IDC_EDIT_AXIS_MODITFY_AUTO_SPEED)->SetWindowText(formatDouble(axisDetails.autoSpeed.currentValue));
    GetDlgItem(IDC_EDIT_AXIS_MODITFY_ACCE_TIME)->SetWindowText(formatDouble(axisDetails.accelerationTime.currentValue));
    GetDlgItem(IDC_EDIT_AXIS_MODITFY_DECE_TIME)->SetWindowText(formatDouble(axisDetails.decelerationTime.currentValue));
    GetDlgItem(IDC_EDIT_AXIS_MODITFY_MICROMENTUM)->SetWindowText(formatDouble(axisDetails.jogDistance.currentValue));
}
void CAxisSettingsDlg::RefreshPositionDetails(int nAxisId, int pageNumber)
@@ -308,13 +283,16 @@
            CString value;
            value.Format(_T("%.3f"), position.range.currentValue);
            if (pPositionCtrl) {
                pPositionCtrl->SetWindowText(value);
                pPositionCtrl->EnableWindow(position.isEnable);
                if (position.isEnable) {
                    if (!IsFloatInRange((LPTSTR)(LPCTSTR)value, position.range.minValue, position.range.maxValue)) {
                    CString strError;
                    strError.Format(_T("定位点%d"), i + 1);
                    UpdateRegexEdit((CRegexEdit*)pPositionCtrl, position.range, strError);
                        strError.Format(_T("定位点%d值必须在 %.3f å’Œ %.3f ä¹‹é—´ï¼"), i + 1, position.range.minValue, position.range.maxValue);
                        ShowTipText(strError, 5);
                    }
                    else {
                        pPositionCtrl->SetWindowText(value);
                    }
                }
            }
        }
@@ -363,8 +341,8 @@
    // åˆ¤æ–­è¾“入的值是否在合法范围内
    if (enteredValue < minValue || enteredValue > maxValue) {
        CString strError;
        strError.Format(_T("定位点的值必须在 %f å’Œ %f ä¹‹é—´ï¼"), minValue, maxValue);
        pDescriptionCtrl->SetWindowText(strError);
        strError.Format(_T("定位点%d的值必须在 %f å’Œ %f ä¹‹é—´ï¼"), currentIndex + 1, minValue, maxValue);
        ShowTipText(strError, 5);
    }
    else {
        position.range.currentValue = enteredValue;
@@ -402,19 +380,19 @@
    // èŽ·å–ç•Œé¢ä¸Šçš„ä¿®æ”¹å‚æ•°
    CString text;
    m_pRegexEdit[EDIT_MANUAL_SPEED]->GetWindowText(text);
    GetDlgItem(IDC_EDIT_AXIS_MODITFY_MANUAL_SPEED)->GetWindowText(text);
    axisData.manualSpeed.currentValue = _ttof(text);
    m_pRegexEdit[EDIT_AUTO_SPEED]->GetWindowText(text);
    GetDlgItem(IDC_EDIT_AXIS_MODITFY_AUTO_SPEED)->GetWindowText(text);
    axisData.autoSpeed.currentValue = _ttof(text);
    m_pRegexEdit[EDIT_ACCE_TIME]->GetWindowText(text);
    GetDlgItem(IDC_EDIT_AXIS_MODITFY_ACCE_TIME)->GetWindowText(text);
    axisData.accelerationTime.currentValue = _ttof(text);
    m_pRegexEdit[EDIT_DECE_TIME]->GetWindowText(text);
    GetDlgItem(IDC_EDIT_AXIS_MODITFY_DECE_TIME)->GetWindowText(text);
    axisData.decelerationTime.currentValue = _ttof(text);
    m_pRegexEdit[EDIT_MICROMENTUM]->GetWindowText(text);
    GetDlgItem(IDC_EDIT_AXIS_MODITFY_MICROMENTUM)->GetWindowText(text);
    axisData.jogDistance.currentValue = _ttof(text);
    // æ›´æ–°å®šä½ç‚¹æ•°æ®
@@ -773,11 +751,15 @@
    ON_BN_CLICKED(IDC_BUTTON_AXIS_UPDATE_UI, &CAxisSettingsDlg::OnBnClickedButtonAxisUpdateUi)
    ON_BN_CLICKED(IDC_BUTTON_AXIS_DETAIL_SETTINGS, &CAxisSettingsDlg::OnBnClickedButtonAxisDetailSettings)
    ON_MESSAGE(ID_MSG_UPDATA_DATA_TO_UI, &CAxisSettingsDlg::OnUpdateDataToUI)
    ON_EN_KILLFOCUS(IDC_EDIT_AXIS_MODITFY_MANUAL_SPEED, &CAxisSettingsDlg::OnKillfocusEditAxisModitfyManualSpeed)
    ON_EN_KILLFOCUS(IDC_EDIT_AXIS_MODITFY_AUTO_SPEED, &CAxisSettingsDlg::OnKillfocusEditAxisModitfyAutoSpeed)
    ON_EN_KILLFOCUS(IDC_EDIT_AXIS_MODITFY_DECE_TIME, &CAxisSettingsDlg::OnKillfocusEditAxisModitfyDeceTime)
    ON_EN_KILLFOCUS(IDC_EDIT_AXIS_MODITFY_ACCE_TIME, &CAxisSettingsDlg::OnKillfocusEditAxisModitfyAcceTime)
    ON_EN_KILLFOCUS(IDC_EDIT_AXIS_MODITFY_MICROMENTUM, &CAxisSettingsDlg::OnEnKillfocusEditAxisModitfyMicromentum)
    ON_WM_SIZE()
    ON_WM_TIMER()
    ON_WM_CLOSE()
    ON_WM_CTLCOLOR()
    ON_EN_KILLFOCUS(IDC_EDIT_AXIS_MODITFY_MICROMENTUM, &CAxisSettingsDlg::OnEnKillfocusEditAxisModitfyMicromentum)
END_MESSAGE_MAP()
@@ -825,18 +807,6 @@
        AdjustLabelFont(*pLabel);
    }
    // åˆå§‹åŒ–编辑框
    m_pRegexEdit[EDIT_MANUAL_SPEED]->SubclassDlgItem(IDC_EDIT_AXIS_MODITFY_MANUAL_SPEED, this);
    m_pRegexEdit[EDIT_AUTO_SPEED]->SubclassDlgItem(IDC_EDIT_AXIS_MODITFY_AUTO_SPEED, this);
    m_pRegexEdit[EDIT_ACCE_TIME]->SubclassDlgItem(IDC_EDIT_AXIS_MODITFY_ACCE_TIME, this);
    m_pRegexEdit[EDIT_DECE_TIME]->SubclassDlgItem(IDC_EDIT_AXIS_MODITFY_DECE_TIME, this);
    m_pRegexEdit[EDIT_MICROMENTUM]->SubclassDlgItem(IDC_EDIT_AXIS_MODITFY_MICROMENTUM, this);
    m_pRegexEdit[EDIT_ANCHOR_POINT1]->SubclassDlgItem(IDC_EDIT_AXIS_ANCHOR_POINT1, this);
    m_pRegexEdit[EDIT_ANCHOR_POINT2]->SubclassDlgItem(IDC_EDIT_AXIS_ANCHOR_POINT2, this);
    m_pRegexEdit[EDIT_ANCHOR_POINT3]->SubclassDlgItem(IDC_EDIT_AXIS_ANCHOR_POINT3, this);
    m_pRegexEdit[EDIT_ANCHOR_POINT4]->SubclassDlgItem(IDC_EDIT_AXIS_ANCHOR_POINT4, this);
    m_pRegexEdit[EDIT_ANCHOR_POINT5]->SubclassDlgItem(IDC_EDIT_AXIS_ANCHOR_POINT5, this);
    // æŒ‰é’®åˆå§‹åŒ–
    m_pBlBtns[BTN_PAGE1]->SubclassDlgItem(IDC_BUTTON_AXIS_ANCHOR_POINT_GROUP1, this);
@@ -1384,6 +1354,110 @@
    return 0;
}
void CAxisSettingsDlg::OnKillfocusEditAxisModitfyManualSpeed()
{
    // TODO: åœ¨æ­¤æ·»åŠ æŽ§ä»¶é€šçŸ¥å¤„ç†ç¨‹åºä»£ç 
    int nAxisId = GetCurrentSelectedAxisID();
    if (nAxisId == -1) {
        AfxMessageBox(_T("请选择一个有效的轴编号!"));
        return;
    }
    auto axisDetails = m_pAxisManager->GetAxis(nAxisId);
    auto dMinValue = axisDetails.manualSpeed.minValue;
    auto dMaxValue = axisDetails.manualSpeed.maxValue;
    CString strText;
    GetDlgItemText(IDC_EDIT_AXIS_MODITFY_MANUAL_SPEED, strText);
    if (!IsFloatInRange((LPTSTR)(LPCTSTR)strText, dMinValue, dMaxValue)) {
        CString strError;
        strError.Format(_T("手动速度值必须在 %.3f å’Œ %.3f ä¹‹é—´ï¼"), dMinValue, dMaxValue);
        ShowTipText(strError, 5);
    }
}
void CAxisSettingsDlg::OnKillfocusEditAxisModitfyAutoSpeed()
{
    // TODO: åœ¨æ­¤æ·»åŠ æŽ§ä»¶é€šçŸ¥å¤„ç†ç¨‹åºä»£ç 
    int nAxisId = GetCurrentSelectedAxisID();
    if (nAxisId == -1) {
        AfxMessageBox(_T("请选择一个有效的轴编号!"));
        return;
    }
    auto axisDetails = m_pAxisManager->GetAxis(nAxisId);
    auto dMinValue = axisDetails.autoSpeed.minValue;
    auto dMaxValue = axisDetails.autoSpeed.maxValue;
    CString strText;
    GetDlgItemText(IDC_EDIT_AXIS_MODITFY_AUTO_SPEED, strText);
    if (!IsFloatInRange((LPTSTR)(LPCTSTR)strText, dMinValue, dMaxValue)) {
        CString strError;
        strError.Format(_T("自动速度值必须在 %.3f å’Œ %.3f ä¹‹é—´ï¼"), dMinValue, dMaxValue);
        ShowTipText(strError, 5);
    }
}
void CAxisSettingsDlg::OnKillfocusEditAxisModitfyAcceTime()
{
    // TODO: åœ¨æ­¤æ·»åŠ æŽ§ä»¶é€šçŸ¥å¤„ç†ç¨‹åºä»£ç 
    int nAxisId = GetCurrentSelectedAxisID();
    if (nAxisId == -1) {
        AfxMessageBox(_T("请选择一个有效的轴编号!"));
        return;
    }
    auto axisDetails = m_pAxisManager->GetAxis(nAxisId);
    auto dMinValue = axisDetails.accelerationTime.minValue;
    auto dMaxValue = axisDetails.accelerationTime.maxValue;
    CString strText;
    GetDlgItemText(IDC_EDIT_AXIS_MODITFY_ACCE_TIME, strText);
    if (!IsFloatInRange((LPTSTR)(LPCTSTR)strText, dMinValue, dMaxValue)) {
        CString strError;
        strError.Format(_T("加速时间值必须在 %.3f å’Œ %.3f ä¹‹é—´ï¼"), dMinValue, dMaxValue);
        ShowTipText(strError, 5);
    }
}
void CAxisSettingsDlg::OnKillfocusEditAxisModitfyDeceTime()
{
    // TODO: åœ¨æ­¤æ·»åŠ æŽ§ä»¶é€šçŸ¥å¤„ç†ç¨‹åºä»£ç 
    int nAxisId = GetCurrentSelectedAxisID();
    if (nAxisId == -1) {
        AfxMessageBox(_T("请选择一个有效的轴编号!"));
        return;
    }
    auto axisDetails = m_pAxisManager->GetAxis(nAxisId);
    auto dMinValue = axisDetails.decelerationTime.minValue;
    auto dMaxValue = axisDetails.decelerationTime.maxValue;
    CString strText;
    GetDlgItemText(IDC_EDIT_AXIS_MODITFY_DECE_TIME, strText);
    if (!IsFloatInRange((LPTSTR)(LPCTSTR)strText, dMinValue, dMaxValue)) {
        CString strError;
        strError.Format(_T("减速时间值必须在 %.3f å’Œ %.3f ä¹‹é—´ï¼"), dMinValue, dMaxValue);
        ShowTipText(strError, 5);
    }
}
void CAxisSettingsDlg::OnEnKillfocusEditAxisModitfyMicromentum()
{
    int nAxisId = GetCurrentSelectedAxisID();
    if (nAxisId == -1) {
        AfxMessageBox(_T("请选择一个有效的轴编号!"));
        return;
    }
    auto axisDetails = m_pAxisManager->GetAxis(nAxisId);
    auto dMinValue = axisDetails.jogDistance.minValue;
    auto dMaxValue = axisDetails.jogDistance.maxValue;
    CString strText;
    GetDlgItemText(IDC_EDIT_AXIS_MODITFY_MICROMENTUM, strText);
    if (!IsFloatInRange((LPTSTR)(LPCTSTR)strText, dMinValue, dMaxValue)) {
        CString strError;
        strError.Format(_T("微动量值必须在 %.3f å’Œ %.3f ä¹‹é—´ï¼"), dMinValue, dMaxValue);
        ShowTipText(strError, 5);
    }
}
void CAxisSettingsDlg::OnTimer(UINT_PTR nIDEvent)
{
    if (TIMER_READ_PLC_DATA == nIDEvent) {
@@ -1454,12 +1528,19 @@
    GetDlgItem(IDC_LABEL_TIP)->ShowWindow(SW_HIDE);
}
void CAxisSettingsDlg::OnEnKillfocusEditAxisModitfyMicromentum()
bool CAxisSettingsDlg::IsFloatInRange(const std::string& strInput, double fLowerBound, double fUpperBound)
{
    CString strText;
    GetDlgItemText(IDC_EDIT_AXIS_MODITFY_MICROMENTUM, strText);
    double value = atof(strText);
    if (value < 0.0 || value > 0.1) {
        ShowTipText("微动量值必须在0.0 ~ 0.1之间", 5);
    // æ˜¯å¦ä¸ºåˆæ³•浮点数
    std::regex floatRegex(R"([-+]?\d*\.?\d+([eE][-+]?\d+)?)");
    if (!std::regex_match(strInput, floatRegex)) {
        return false;
    }
    try {
        double value = std::stod(strInput);
        return value >= fLowerBound && value <= fUpperBound;
    }
    catch (const std::exception&) {
        return false;
    }
}
SourceCode/Bond/BoounionPLC/AxisSettingsDlg.h
@@ -1,7 +1,6 @@
#pragma once
#include "BlButton.h"
#include "BLLabel.h"
#include "RegexEdit.h"
#include "CBaseDlg.h"
#include "PLC.h"
#include "AxisManager.h"
@@ -17,19 +16,6 @@
#define LABEL_READY        3
#define LABEL_BUSY        4
#define LABEL_ERR        5
// RegexEdit控件
#define EDIT_MAX            10
#define EDIT_MANUAL_SPEED    0
#define EDIT_AUTO_SPEED        1
#define EDIT_ACCE_TIME        2
#define EDIT_DECE_TIME        3
#define EDIT_MICROMENTUM    4
#define EDIT_ANCHOR_POINT1    5
#define EDIT_ANCHOR_POINT2    6
#define EDIT_ANCHOR_POINT3    7
#define EDIT_ANCHOR_POINT4    8
#define EDIT_ANCHOR_POINT5    9
// BUTTON控件
#define BTN_MAX            15
@@ -88,7 +74,6 @@
    void SetLabelColor(CBLLabel& label, COLORREF color);
    void SetLabelColorBasedOnState(CBLLabel& label, BOOL bState, COLORREF colorTrue, COLORREF colorFalse);
    void UpdateLabels();
    void UpdateRegexEdit(CRegexEdit* pRegexEdit, const ValueRange& range, const CString& title);
    void UpdatePageButtonStates();
    void HideEditCursor(int nCtrlID);
    int GetCurrentSelectedAxisID();
@@ -105,6 +90,7 @@
    void ReadPLCDataToUI(int nAxisId);
    void ShowTipText(const char* pszText, float sec);
    void HideTip();
    bool IsFloatInRange(const std::string& strInput, double fLowerBound, double fUpperBound);
private:
    CPLC* m_pPLC;
@@ -122,7 +108,6 @@
    // æŽ§ä»¶
    CBlButton* m_pBlBtns[BTN_MAX];
    CBLLabel* m_pBlLabels[LABEL_MAX];
    CRegexEdit* m_pRegexEdit[EDIT_MAX];
    CComboBox m_comboAxisNO;
    CStatic m_staticAxisNO, m_staticAxisDescription, m_staticStartAddress;
@@ -169,10 +154,13 @@
    afx_msg void OnBnClickedButtonAxisUpdateUi();
    afx_msg void OnBnClickedButtonAxisDetailSettings();
    afx_msg LRESULT OnUpdateDataToUI(WPARAM wParam, LPARAM lParam);
    afx_msg void OnKillfocusEditAxisModitfyManualSpeed();
    afx_msg void OnKillfocusEditAxisModitfyAutoSpeed();
    afx_msg void OnKillfocusEditAxisModitfyDeceTime();
    afx_msg void OnKillfocusEditAxisModitfyAcceTime();
    afx_msg void OnEnKillfocusEditAxisModitfyMicromentum();
    afx_msg void OnTimer(UINT_PTR nIDEvent);
    afx_msg void OnClose();
    DECLARE_MESSAGE_MAP()
public:
    afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
    afx_msg void OnEnKillfocusEditAxisModitfyMicromentum();
    DECLARE_MESSAGE_MAP()
};
SourceCode/Bond/BoounionPLC/BoounionPLC.vcxproj
@@ -230,7 +230,6 @@
    <ClInclude Include="PagePlcList.h" />
    <ClInclude Include="PLC.h" />
    <ClInclude Include="PlcView.h" />
    <ClInclude Include="RegexEdit.h" />
    <ClInclude Include="Resource.h" />
    <ClInclude Include="stdafx.h" />
    <ClInclude Include="targetver.h" />
@@ -280,7 +279,6 @@
    <ClCompile Include="PagePlcList.cpp" />
    <ClCompile Include="PLC.cpp" />
    <ClCompile Include="PlcView.cpp" />
    <ClCompile Include="RegexEdit.cpp" />
    <ClCompile Include="stdafx.cpp">
      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
SourceCode/Bond/BoounionPLC/BoounionPLC.vcxproj.filters
@@ -156,9 +156,6 @@
    <ClInclude Include="CBaseDlg.h">
      <Filter>头文件</Filter>
    </ClInclude>
    <ClInclude Include="RegexEdit.h">
      <Filter>头文件</Filter>
    </ClInclude>
  </ItemGroup>
  <ItemGroup>
    <ClCompile Include="BoounionPLC.cpp">
@@ -279,9 +276,6 @@
      <Filter>源文件</Filter>
    </ClCompile>
    <ClCompile Include="CBaseDlg.cpp">
      <Filter>源文件</Filter>
    </ClCompile>
    <ClCompile Include="RegexEdit.cpp">
      <Filter>源文件</Filter>
    </ClCompile>
  </ItemGroup>
SourceCode/Bond/BoounionPLC/RegexEdit.cpp
ÎļþÒÑɾ³ý
SourceCode/Bond/BoounionPLC/RegexEdit.h
ÎļþÒÑɾ³ý