From e3729db9e5b77d253666d9c7287bf2ea84c05132 Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期三, 17 十二月 2025 16:48:10 +0800
Subject: [PATCH] 1.添加生产面板框架;

---
 SourceCode/Bond/Servo/Servo.vcxproj         |    4 
 SourceCode/Bond/Servo/Servo.vcxproj.filters |   20 +--
 SourceCode/Bond/Servo/resource.h            |   21 ++--
 SourceCode/Bond/Servo/CPanelMaster.h        |    1 
 SourceCode/Bond/Servo/Servo.rc              |   26 +++++
 SourceCode/Bond/Servo/CPanelMaster.cpp      |   18 +--
 SourceCode/Bond/Servo/CPanelProduction.cpp  |  125 +++++++++++++++++++++++++
 SourceCode/Bond/Servo/ServoDlg.cpp          |   44 ++++++++
 SourceCode/Bond/Servo/CPanelProduction.h    |   38 +++++++
 SourceCode/Bond/Servo/Common.h              |    1 
 SourceCode/Bond/Servo/ServoDlg.h            |    2 
 11 files changed, 258 insertions(+), 42 deletions(-)

diff --git a/SourceCode/Bond/Servo/CPanelMaster.cpp b/SourceCode/Bond/Servo/CPanelMaster.cpp
index 82c5361..4fd3dbb 100644
--- a/SourceCode/Bond/Servo/CPanelMaster.cpp
+++ b/SourceCode/Bond/Servo/CPanelMaster.cpp
@@ -50,6 +50,11 @@
 	return m_nPanelWidth;
 }
 
+void CPanelMaster::setPanelWidth(int width)
+{
+	m_nPanelWidth = width;
+}
+
 BOOL CPanelMaster::OnInitDialog()
 {
 	CDialogEx::OnInitDialog();
@@ -59,13 +64,6 @@
 	pLine1->SetBkgndColor(RGB(225, 225, 225));
 	pLine1->SetLineColor(RGB(198, 198, 198));
 	pLine1->EnableResize();
-
-
-	// 璇诲彇闈㈡澘瀹�
-	CString strIniFile;
-	strIniFile.Format(_T("%s\\%s.ini"), (LPTSTR)(LPCTSTR)theApp.m_strAppDir, (LPTSTR)(LPCTSTR)theApp.m_strAppFile);
-	m_nPanelWidth = GetPrivateProfileInt(_T("App"), _T("MasterPanelWidth"),
-		int((double)GetSystemMetrics(SM_CXSCREEN) * 0.25), (LPTSTR)(LPCTSTR)strIniFile);
 
 
 	// treectrl
@@ -132,12 +130,6 @@
 	m_nPanelWidth = max(m_nPanelWidth, MASTER_PANEL_MIN_WIDTH);
 	m_nPanelWidth = min(m_nPanelWidth, MASTER_PANEL_MAX_WIDTH);
 	GetParent()->SendMessage(ID_MSG_PANEL_RESIZE, m_nPanelWidth, 0);
-
-	CString strIniFile, strValue;
-	strIniFile.Format(_T("%s\\%s.ini"), (LPTSTR)(LPCTSTR)theApp.m_strAppDir, (LPTSTR)(LPCTSTR)theApp.m_strAppFile);
-	strValue.Format(_T("%d"), m_nPanelWidth);
-	WritePrivateProfileString(_T("App"), _T("MasterPanelWidth"),
-		(LPTSTR)(LPCTSTR)strValue, (LPTSTR)(LPCTSTR)strIniFile);
 	OnSize(0, 0, 0);
 	
 	* result = 0;
diff --git a/SourceCode/Bond/Servo/CPanelMaster.h b/SourceCode/Bond/Servo/CPanelMaster.h
index 15bd2db..481683a 100644
--- a/SourceCode/Bond/Servo/CPanelMaster.h
+++ b/SourceCode/Bond/Servo/CPanelMaster.h
@@ -12,6 +12,7 @@
 	CPanelMaster(CWnd* pParent = nullptr);   // 鏍囧噯鏋勯�犲嚱鏁�
 	virtual ~CPanelMaster();
 	int getPanelWidth();
+	void setPanelWidth(int width);
 	void loadEquipmentList();
 	void loadSteps(SERVO::CEquipment* pEquipment, HTREEITEM hItemEq);
 	SERVO::CEquipment* GetActiveEquipment();
diff --git a/SourceCode/Bond/Servo/CPanelProduction.cpp b/SourceCode/Bond/Servo/CPanelProduction.cpp
new file mode 100644
index 0000000..7a56fe0
--- /dev/null
+++ b/SourceCode/Bond/Servo/CPanelProduction.cpp
@@ -0,0 +1,125 @@
+// CPanelProduction.cpp
+//
+
+#include "stdafx.h"
+#include "Servo.h"
+#include "CPanelProduction.h"
+#include "afxdialogex.h"
+#include "Common.h"
+#include "VerticalLine.h"
+#include <cstring>
+#include <vector>
+
+
+// CPanelProduction dialog
+
+IMPLEMENT_DYNAMIC(CPanelProduction, CDialogEx)
+
+CPanelProduction::CPanelProduction(CWnd* pParent /*=nullptr*/)
+	: CDialogEx(IDD_PANEL_PRODUCTION, pParent)
+{
+	m_crBkgnd = PANEL_PRODUCTION_BACKGROUND_COLOR;
+	m_hbrBkgnd = nullptr;
+	m_nPanelWidth = 288;
+	m_hPlaceholder = nullptr;
+}
+
+CPanelProduction::~CPanelProduction()
+{
+}
+
+void CPanelProduction::DoDataExchange(CDataExchange* pDX)
+{
+	CDialogEx::DoDataExchange(pDX);
+}
+
+
+BEGIN_MESSAGE_MAP(CPanelProduction, CDialogEx)
+	ON_WM_CTLCOLOR()
+	ON_WM_DESTROY()
+	ON_WM_SIZE()
+	ON_NOTIFY(BYVERTICALLINE_MOVEX, IDC_LINE1, &CPanelProduction::OnVLineMoveX)
+	ON_BN_CLICKED(IDC_BUTTON_CLOSE, &CPanelProduction::OnBnClickedButtonClose)
+END_MESSAGE_MAP()
+
+int CPanelProduction::getPanelWidth()
+{
+	return m_nPanelWidth;
+}
+
+void CPanelProduction::setPanelWidth(int width)
+{
+	m_nPanelWidth = width;
+}
+
+BOOL CPanelProduction::OnInitDialog()
+{
+	CDialogEx::OnInitDialog();
+
+	CVerticalLine* pLine1 = CVerticalLine::Hook(GetDlgItem(IDC_LINE1)->GetSafeHwnd());
+	pLine1->SetBkgndColor(RGB(225, 225, 225));
+	pLine1->SetLineColor(RGB(198, 198, 198));
+	pLine1->EnableResize();
+
+	return TRUE;  // return TRUE unless you set the focus to a control
+				  // Exception: OCX property pages should return FALSE
+}
+
+HBRUSH CPanelProduction::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
+{
+	HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
+
+	if (nCtlColor == CTLCOLOR_STATIC) {
+		pDC->SetBkColor(m_crBkgnd);
+		pDC->SetTextColor(RGB(0, 0, 0));
+	}
+
+	if (m_hbrBkgnd == nullptr) {
+		m_hbrBkgnd = CreateSolidBrush(m_crBkgnd);
+	}
+
+	return m_hbrBkgnd;
+}
+
+void CPanelProduction::OnDestroy()
+{
+	CDialogEx::OnDestroy();
+
+	if (m_hbrBkgnd != nullptr) {
+		::DeleteObject(m_hbrBkgnd);
+	}
+}
+
+void CPanelProduction::OnSize(UINT nType, int cx, int cy)
+{
+	CDialogEx::OnSize(nType, cx, cy);
+	if (GetDlgItem(IDC_LINE1) == nullptr) return;
+
+	CWnd* pItem;
+	CRect rcClient, rcItem;
+
+	GetClientRect(&rcClient);
+	pItem = GetDlgItem(IDC_LINE1);
+	pItem->MoveWindow(rcClient.right - 3, 0, 3, rcClient.Height());
+}
+
+#define PRODUCTION_PANEL_MIN_WIDTH		88
+#define PRODUCTION_PANEL_MAX_WIDTH		588
+void CPanelProduction::OnVLineMoveX(NMHDR* nmhdr, LRESULT* result)
+{
+	BYVERTICALLINE_NMHDR* pNmhdrex = (BYVERTICALLINE_NMHDR*)nmhdr;
+	int x = pNmhdrex->dwData;
+	m_nPanelWidth += x;
+	m_nPanelWidth = max(m_nPanelWidth, PRODUCTION_PANEL_MIN_WIDTH);
+	m_nPanelWidth = min(m_nPanelWidth, PRODUCTION_PANEL_MAX_WIDTH);
+	GetParent()->SendMessage(ID_MSG_PANEL_RESIZE, m_nPanelWidth, 0);
+	OnSize(0, 0, 0);
+
+	*result = 0;
+}
+
+void CPanelProduction::OnBnClickedButtonClose()
+{
+	ShowWindow(SW_HIDE);
+	GetParent()->SendMessage(ID_MSG_PANEL_RESIZE, m_nPanelWidth, 0);
+}
diff --git a/SourceCode/Bond/Servo/CPanelProduction.h b/SourceCode/Bond/Servo/CPanelProduction.h
new file mode 100644
index 0000000..60713f3
--- /dev/null
+++ b/SourceCode/Bond/Servo/CPanelProduction.h
@@ -0,0 +1,38 @@
+#pragma once
+#include "BlButton.h"
+
+// CPanelProduction dialog
+class CPanelProduction : public CDialogEx
+{
+	DECLARE_DYNAMIC(CPanelProduction)
+
+public:
+	CPanelProduction(CWnd* pParent = nullptr);   // standard constructor
+	virtual ~CPanelProduction();
+	int getPanelWidth();
+	void setPanelWidth(int width);
+
+private:
+	COLORREF m_crBkgnd;
+	HBRUSH m_hbrBkgnd;
+	int m_nPanelWidth;
+	CBlButton m_btnClose;
+	HWND m_hPlaceholder;
+
+protected:
+	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
+
+// 对话框数据
+#ifdef AFX_DESIGN_TIME
+	enum { IDD = IDD_PANEL_PRODUCTION };
+#endif
+
+	DECLARE_MESSAGE_MAP()
+public:
+	virtual BOOL OnInitDialog();
+	afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
+	afx_msg void OnDestroy();
+	afx_msg void OnSize(UINT nType, int cx, int cy);
+	afx_msg void OnVLineMoveX(NMHDR* nmhdr, LRESULT* result);
+	afx_msg void OnBnClickedButtonClose();
+};
diff --git a/SourceCode/Bond/Servo/Common.h b/SourceCode/Bond/Servo/Common.h
index a491039..ed3798c 100644
--- a/SourceCode/Bond/Servo/Common.h
+++ b/SourceCode/Bond/Servo/Common.h
@@ -29,6 +29,7 @@
 #define APPDLG_BACKGROUND_COLOR				RGB(255, 255, 255)
 #define LOGDLG_BACKGROUND_COLOR				RGB(255, 255, 255)
 #define PANEL_MASTER_BACKGROUND_COLOR		RGB(255, 255, 255)
+#define PANEL_PRODUCTION_BACKGROUND_COLOR	RGB(255, 255, 255)
 #define PANEL_ATTRIBUTES_BACKGROUND_COLOR	RGB(255, 255, 255)
 #define PANEL_EQUIPMENT_BACKGROUND_COLOR	RGB(255, 255, 255)
 #define PAGE_GRPAH1_BACKGROUND_COLOR		RGB(255, 255, 255)
diff --git a/SourceCode/Bond/Servo/Servo.rc b/SourceCode/Bond/Servo/Servo.rc
index 6bcfa7c..8184b63 100644
--- a/SourceCode/Bond/Servo/Servo.rc
+++ b/SourceCode/Bond/Servo/Servo.rc
@@ -21,6 +21,7 @@
 
 #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
+#pragma code_page(936)
 
 #ifdef APSTUDIO_INVOKED
 /////////////////////////////////////////////////////////////////////////////
@@ -565,7 +566,7 @@
     LTEXT           "名称:",IDC_STATIC,12,32,50,8
     EDITTEXT        IDC_EDIT_EVT_NAME,70,30,260,14,ES_AUTOHSCROLL
     LTEXT           "描述:",IDC_STATIC,12,52,50,8
-    EDITTEXT        IDC_EDIT_EVT_DESC,70,50,260,34,ES_AUTOHSCROLL | ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL
+    EDITTEXT        IDC_EDIT_EVT_DESC,70,50,260,34,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | WS_VSCROLL
     LTEXT           "选择Report:",IDC_STATIC_SELECT_VARS,12,90,70,8
     CONTROL         "",IDC_LIST_EVT_RPTS,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,12,100,316,90
     DEFPUSHBUTTON   "确定",IDOK,200,196,50,14
@@ -805,6 +806,14 @@
     DEFPUSHBUTTON   "确定",IDOK,283,238,50,14
     PUSHBUTTON      "取消",IDCANCEL,338,238,50,14
     CONTROL         "",IDC_LIST1,"SysListView32",LVS_REPORT | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,7,7,381,226
+END
+
+IDD_PANEL_PRODUCTION DIALOGEX 0, 0, 311, 254
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+    LTEXT           "Test",IDC_STATIC,95,67,15,8
+    CONTROL         "Custom1",IDC_LINE1,"BYVerticalLine",WS_TABSTOP,286,7,18,240
 END
 
 
@@ -1236,6 +1245,14 @@
         TOPMARGIN, 7
         BOTTOMMARGIN, 252
     END
+
+    IDD_PANEL_PRODUCTION, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 304
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 247
+    END
 END
 #endif    // APSTUDIO_INVOKED
 
@@ -1485,6 +1502,11 @@
     0
 END
 
+IDD_PANEL_PRODUCTION AFX_DIALOG_LAYOUT
+BEGIN
+    0
+END
+
 
 /////////////////////////////////////////////////////////////////////////////
 //
@@ -1544,6 +1566,8 @@
     BEGIN
         MENUITEM "日志窗口(&L)",                    ID_MENU_WND_LOG
         MENUITEM "警告窗口(A)",                     32781
+        MENUITEM "测试面板(T)",                     ID_MENU_WND_TEST_PANEL
+        MENUITEM "生产面板(P)",                     ID_MENU_WND_PRO_PANEL
     END
     POPUP "帮助(&H)"
     BEGIN
diff --git a/SourceCode/Bond/Servo/Servo.vcxproj b/SourceCode/Bond/Servo/Servo.vcxproj
index 2b022d8..252010a 100644
--- a/SourceCode/Bond/Servo/Servo.vcxproj
+++ b/SourceCode/Bond/Servo/Servo.vcxproj
@@ -245,6 +245,7 @@
     <ClInclude Include="CPageLinkSignal.h" />
     <ClInclude Include="CPageReport.h" />
     <ClInclude Include="CPageVarialbles.h" />
+    <ClInclude Include="CPanelProduction.h" />
     <ClInclude Include="CParam.h" />
     <ClInclude Include="CCjPage1.h" />
     <ClInclude Include="CProcessDataListDlg.h" />
@@ -466,6 +467,7 @@
     <ClCompile Include="CPageLinkSignal.cpp" />
     <ClCompile Include="CPageReport.cpp" />
     <ClCompile Include="CPageVarialbles.cpp" />
+    <ClCompile Include="CPanelProduction.cpp" />
     <ClCompile Include="CParam.cpp" />
     <ClCompile Include="CCjPage1.cpp" />
     <ClCompile Include="CProcessDataListDlg.cpp" />
@@ -657,4 +659,4 @@
     <Error Condition="!Exists('..\packages\Microsoft.Web.WebView2.1.0.2903.40\build\native\Microsoft.Web.WebView2.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Web.WebView2.1.0.2903.40\build\native\Microsoft.Web.WebView2.targets'))" />
     <Error Condition="!Exists('..\packages\Microsoft.Windows.ImplementationLibrary.1.0.240803.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Windows.ImplementationLibrary.1.0.240803.1\build\native\Microsoft.Windows.ImplementationLibrary.targets'))" />
   </Target>
-</Project>
+</Project>
\ No newline at end of file
diff --git a/SourceCode/Bond/Servo/Servo.vcxproj.filters b/SourceCode/Bond/Servo/Servo.vcxproj.filters
index 8df064d..21925a5 100644
--- a/SourceCode/Bond/Servo/Servo.vcxproj.filters
+++ b/SourceCode/Bond/Servo/Servo.vcxproj.filters
@@ -171,13 +171,7 @@
     <ClCompile Include="RecipeDeviceBindDlg.cpp" />
     <ClCompile Include="CCustomCheckBox.cpp" />
     <ClCompile Include="CCollectionEvent.cpp" />
-    <ClCompile Include="CEventEditDlg.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="CReport.cpp" />
-    <ClCompile Include="CReportEditDlg.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="CVariable.cpp" />
     <ClCompile Include="CPageVarialbles.cpp" />
     <ClCompile Include="CPageReport.cpp" />
@@ -240,6 +234,9 @@
     <ClCompile Include="CUserEdit2Dlg.cpp" />
     <ClCompile Include="CUserXLogDlg.cpp" />
     <ClCompile Include="CVariableEditDlg2.cpp" />
+    <ClCompile Include="CEventEditDlg.cpp" />
+    <ClCompile Include="CReportEditDlg.cpp" />
+    <ClCompile Include="CPanelProduction.cpp" />
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="AlarmManager.h" />
@@ -416,13 +413,7 @@
     <ClInclude Include="RecipeDeviceBindDlg.h" />
     <ClInclude Include="CCustomCheckBox.h" />
     <ClInclude Include="CCollectionEvent.h" />
-    <ClInclude Include="CEventEditDlg.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="CReport.h" />
-    <ClInclude Include="CReportEditDlg.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="CVariable.h" />
     <ClInclude Include="CPageVarialbles.h" />
     <ClInclude Include="CPageReport.h" />
@@ -523,6 +514,9 @@
     <ClInclude Include="CUserEdit2Dlg.h" />
     <ClInclude Include="CUserXLogDlg.h" />
     <ClInclude Include="CVariableEditDlg2.h" />
+    <ClInclude Include="CEventEditDlg.h" />
+    <ClInclude Include="CReportEditDlg.h" />
+    <ClInclude Include="CPanelProduction.h" />
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="Servo.rc" />
@@ -566,4 +560,4 @@
       <UniqueIdentifier>{885738f6-3122-4bb9-8308-46b7f692fb13}</UniqueIdentifier>
     </Filter>
   </ItemGroup>
-</Project>
+</Project>
\ No newline at end of file
diff --git a/SourceCode/Bond/Servo/ServoDlg.cpp b/SourceCode/Bond/Servo/ServoDlg.cpp
index c3d42da..34c48f1 100644
--- a/SourceCode/Bond/Servo/ServoDlg.cpp
+++ b/SourceCode/Bond/Servo/ServoDlg.cpp
@@ -96,6 +96,7 @@
 	m_pTerminalDisplayDlg = nullptr;
 	m_pObserver = nullptr;
 	m_pPanelMaster = nullptr;
+	m_pPanelProduction = nullptr;
 	m_pPanelEquipment = nullptr;
 	m_pPanelAttributes = nullptr;
 	m_pPageGraph1 = nullptr;
@@ -422,10 +423,19 @@
 	m_pTab->SetBkgndColor(RGB(222, 222, 222));
 	ShowChildPage(0);
 
+	// 璇诲彇闈㈡澘瀹�
+	CString strIniFile;
+	strIniFile.Format(_T("%s\\%s.ini"), (LPTSTR)(LPCTSTR)theApp.m_strAppDir, (LPTSTR)(LPCTSTR)theApp.m_strAppFile);
+	int nPanelWidth = GetPrivateProfileInt(_T("App"), _T("MasterPanelWidth"),
+		int((double)GetSystemMetrics(SM_CXSCREEN) * 0.25), (LPTSTR)(LPCTSTR)strIniFile);
 
 	m_pPanelMaster = new CPanelMaster();
+	m_pPanelMaster->setPanelWidth(nPanelWidth);
 	m_pPanelMaster->Create(IDD_PANEL_MASTER, this);
-	m_pPanelMaster->ShowWindow(SW_SHOW);
+	m_pPanelProduction = new CPanelProduction();
+	m_pPanelProduction->setPanelWidth(nPanelWidth);
+	m_pPanelProduction->Create(IDD_PANEL_PRODUCTION, this);
+	m_pPanelProduction->ShowWindow(SW_SHOW);
 	m_pPanelEquipment = new CPanelEquipment();
 	m_pPanelEquipment->Create(IDD_PANEL_EQUIPMENT, this);
 	m_pPanelAttributes = new CPanelAttributes();
@@ -756,6 +766,12 @@
 		m_pPanelMaster = nullptr;
 	}
 
+	if (m_pPanelProduction != nullptr) {
+		m_pPanelProduction->DestroyWindow();
+		delete m_pPanelProduction;
+		m_pPanelProduction = nullptr;
+	}
+
 	if (m_pPanelEquipment != nullptr) {
 		m_pPanelEquipment->DestroyWindow();
 		delete m_pPanelEquipment;
@@ -856,9 +872,16 @@
 	
 
 	int nPanelWidth = 0;
-	if (m_pPanelMaster != nullptr) {
+	if (m_pPanelMaster != nullptr && ::IsWindow(m_pPanelMaster->GetSafeHwnd())
+		&& m_pPanelMaster->IsWindowVisible()) {
 		nPanelWidth = m_pPanelMaster->getPanelWidth();
 		m_pPanelMaster->MoveWindow(x, y, nPanelWidth, y2 - y);
+		x += nPanelWidth;
+	}
+
+	if (m_pPanelProduction != nullptr && m_pPanelProduction->IsWindowVisible()) {
+		nPanelWidth = m_pPanelProduction->getPanelWidth();
+		m_pPanelProduction->MoveWindow(x, y, nPanelWidth, y2 - y);
 		x += nPanelWidth;
 	}
 
@@ -965,7 +988,20 @@
 LRESULT CServoDlg::OnPanelResize(WPARAM wParam, LPARAM lParam)
 {
 	int width = (int)wParam;
-	// m_pPanel->SetPanelWidth(width);
+
+	if (m_pPanelMaster != nullptr) {
+		m_pPanelMaster->setPanelWidth(width);
+	}
+	if (m_pPanelProduction != nullptr) {
+		m_pPanelProduction->setPanelWidth(width);
+	}
+
+	CString strIniFile, strValue;
+	strIniFile.Format(_T("%s\\%s.ini"), (LPTSTR)(LPCTSTR)theApp.m_strAppDir, (LPTSTR)(LPCTSTR)theApp.m_strAppFile);
+	strValue.Format(_T("%d"), width);
+	WritePrivateProfileString(_T("App"), _T("MasterPanelWidth"),
+		(LPTSTR)(LPCTSTR)strValue, (LPTSTR)(LPCTSTR)strIniFile);
+
 	Resize();
 
 	return 0;
@@ -1226,4 +1262,4 @@
 	}
 
 	return strText;
-}
\ No newline at end of file
+}
diff --git a/SourceCode/Bond/Servo/ServoDlg.h b/SourceCode/Bond/Servo/ServoDlg.h
index bdc47a4..1e3647f 100644
--- a/SourceCode/Bond/Servo/ServoDlg.h
+++ b/SourceCode/Bond/Servo/ServoDlg.h
@@ -12,6 +12,7 @@
 #include "CPanelMaster.h"
 #include "CPanelEquipment.h"
 #include "CPanelAttributes.h"
+#include "CPanelProduction.h"
 #include "CPageGraph1.h"
 #include "CPageGraph2.h"
 #include "TopToolbar.h"
@@ -66,6 +67,7 @@
 	HBRUSH m_hbrBkgnd;
 	CTopToolbar* m_pTopToolbar;
 	CPanelMaster* m_pPanelMaster;
+	CPanelProduction* m_pPanelProduction;
 	CPanelEquipment* m_pPanelEquipment;
 	CPanelAttributes* m_pPanelAttributes;
 	CMyStatusbar* m_pMyStatusbar;
diff --git a/SourceCode/Bond/Servo/resource.h b/SourceCode/Bond/Servo/resource.h
index a95442e..e81edcd 100644
--- a/SourceCode/Bond/Servo/resource.h
+++ b/SourceCode/Bond/Servo/resource.h
@@ -44,9 +44,6 @@
 #define IDD_DIALOG_CLIENT_LIST          162
 #define IDD_DIALOG_LOGIN                163
 #define IDD_DIALOG_INPUT                164
-#define IDD_DIALOG_VARIABLE_EDIT2       186
-#define IDD_DIALOG_REPORT_EDIT          187
-#define IDD_DIALOG_EVENT_EDIT           188
 #define IDD_PAGE_LINK_SIGNAL            165
 #define IDD_DIALOG_SYSTEM_LOG_MANAGER   166
 #define IDD_DIALOG_RECIPE_DEVICE_BIND   167
@@ -66,6 +63,10 @@
 #define IDD_DIALOG_USER_EDIT2           182
 #define IDD_DIALOG1                     184
 #define IDD_DIALOG_USERX_LOG            184
+#define IDD_DIALOG_VARIABLE_EDIT2       186
+#define IDD_DIALOG_REPORT_EDIT          187
+#define IDD_DIALOG_EVENT_EDIT           188
+#define IDD_PANEL_PRODUCTION            189
 #define IDC_SERVO_GRAPH1                1001
 #define IDC_BUTTON_LOG                  1002
 #define IDC_EDIT_LOG                    1003
@@ -310,21 +311,18 @@
 #define IDC_EDIT_USER_PASSWORD          1232
 #define IDC_COMBO_USER_ROLE             1233
 #define IDC_CHECK_USER_ENABLED          1234
-#define IDC_LIST_RPT_VARS               1241
-#define IDC_STATIC_SELECT_VARS          1242
 #define IDC_EDIT_VAR_ID                 1235
 #define IDC_COMBO_VAR_TYPE              1236
 #define IDC_EDIT_VAR_NAME               1237
 #define IDC_EDIT_VAR_REMARK             1238
 #define IDC_EDIT_RPT_ID                 1239
 #define IDC_EDIT_RPT_VIDS               1240
+#define IDC_LIST_RPT_VARS               1241
+#define IDC_STATIC_SELECT_VARS          1242
 #define IDC_EDIT_EVT_ID                 1243
 #define IDC_EDIT_EVT_NAME               1244
 #define IDC_EDIT_EVT_DESC               1245
 #define IDC_LIST_EVT_RPTS               1246
-#define IDC_EDIT_VAR_ID                1235
-#define IDC_COMBO_VAR_TYPE             1236
-#define IDC_EDIT_VAR_NAME              1237
 #define ID_MENU_HELP_ABOUT              32771
 #define ID_MENU_FILE_EXIT               32772
 #define ID_MENU_FILE_SECSTEST           32773
@@ -355,12 +353,15 @@
 #define ID_EQSGRAPHITEM_TEST6           32798
 #define ID_MENU_PROJECT_VARIABLE_LIST   32800
 #define ID_MENU_TOOLS_CLIENT_LIST       32801
+#define ID_MENU_WND_TEST_PANEL          32802
+#define ID_MENU_WND_PRO_PANEL           32803
+
 // Next default values for new objects
 // 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE        189
-#define _APS_NEXT_COMMAND_VALUE         32802
+#define _APS_NEXT_RESOURCE_VALUE        191
+#define _APS_NEXT_COMMAND_VALUE         32804
 #define _APS_NEXT_CONTROL_VALUE         1247
 #define _APS_NEXT_SYMED_VALUE           101
 #endif

--
Gitblit v1.9.3