LAPTOP-SNT8I5JK\Boounion
2025-09-16 c36e0403012fda6101c176be7a875846fe383a53
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
// CPjPage1.cpp: 实现文件
//
 
#include "stdafx.h"
#include "Servo.h"
#include "CCjPage2.h"
#include "afxdialogex.h"
#include "RecipeManager.h"
 
 
// CPjPage1 对话框
 
IMPLEMENT_DYNAMIC(CCjPage2, CCjPageBase)
 
CCjPage2::CCjPage2(CWnd* pParent /*=nullptr*/)
    : CCjPageBase(IDD_CJ_PAGE2, pParent)
{
 
}
 
CCjPage2::~CCjPage2()
{
}
 
void CCjPage2::DoDataExchange(CDataExchange* pDX)
{
    CCjPageBase::DoDataExchange(pDX);
}
 
 
BEGIN_MESSAGE_MAP(CCjPage2, CCjPageBase)
    ON_WM_DESTROY()
    ON_EN_CHANGE(IDC_EDIT_PJ_ID, &CCjPage2::OnEnChangeEditPjId)
    ON_CBN_SELCHANGE(IDC_COMBO_RECIPE, &CCjPage2::OnCbnSelchangeComboRecipe)
END_MESSAGE_MAP()
 
 
// CPjPage1 消息处理程序
 
 
void CCjPage2::OnSetContext(void* pContext)
{
    UpdatePjData();
}
 
BOOL CCjPage2::OnInitDialog()
{
    CCjPageBase::OnInitDialog();
 
 
    UpdatePjData();
 
        
        ;
    return TRUE;  // return TRUE unless you set the focus to a control
                  // 异常: OCX 属性页应返回 FALSE
}
 
void CCjPage2::OnDestroy()
{
    CCjPageBase::OnDestroy();
 
    // TODO: 在此处添加消息处理程序代码
}
 
void CCjPage2::Resize()
{
    CCjPageBase::Resize();
    /*
    CWnd* pItem;
    CRect rcClient, rcItem;
    GetClientRect(&rcClient);
    pItem = GetDlgItem(IDC_LABEL_TITLE);
    pItem->GetWindowRect(&rcItem);
    pItem->MoveWindow(12, 8, rcClient.Width() - 24, rcItem.Height());
    */
}
 
void CCjPage2::OnApply() 
{
    //SERVO::CProcessJob*
    if (m_pContext == nullptr) return;
    SERVO::CProcessJob* pProcessJob = (SERVO::CProcessJob*)m_pContext;
 
    // 更新名称
    char szBuffer[256];
    GetDlgItemText(IDC_EDIT_PJ_ID, szBuffer, 256);
    pProcessJob->setId(std::string(szBuffer));
 
    ContentChanged(1);
}
 
void CCjPage2::UpdatePjData()
{
    m_bContentChangedLock = TRUE;
 
    CComboBox* pComboBox = (CComboBox*)GetDlgItem(IDC_COMBO_RECIPE);
    pComboBox->ResetContent();
    std::vector<std::string> vecRecipe = RecipeManager::getInstance().getAllPPID();
    for (const auto& recipe : vecRecipe) {
        pComboBox->AddString(CString(recipe.c_str()));
    }
 
    if (m_pContext) {
        SERVO::CProcessJob* pProcessJob = (SERVO::CProcessJob*)m_pContext;
        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);
    }
 
    m_bContentChangedLock = FALSE;
}
 
void CCjPage2::OnEnChangeEditPjId()
{
    ContentChanged(0);
}
 
void CCjPage2::OnCbnSelchangeComboRecipe()
{
    ContentChanged(0);
}