sat23 4 gadi atpakaļ
vecāks
revīzija
2a115ee8c9

+ 8 - 3
SATHelper/SATHelper/MainFrm.cpp

@@ -325,11 +325,16 @@ int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
 	m_wndOutput.EnableDocking(CBRS_ALIGN_ANY);
 	DockPane(&m_wndOutput);
 #endif
+	// 遥控Pane;
 	m_wndIRControl.EnableDocking(CBRS_ALIGN_ANY);
 	DockPane(&m_wndIRControl);
+	// 执行器Pane;
 	m_wndDevices.EnableDocking(CBRS_ALIGN_ANY);
 	CDockablePane* pTabbedBar = nullptr;
 	m_wndDevices.AttachToTabWnd(&m_wndIRControl, DM_SHOW, TRUE, &pTabbedBar);
+	// 升级Pane;
+	m_wndUpgrade.EnableDocking(CBRS_ALIGN_ANY);
+	//m_wndUpgrade.AttachToTabWnd(&m_wndDevices, DM_SHOW, FALSE, &pTabbedBar);
 #endif
 
 	// 基于持久值设置视觉管理器和样式
@@ -1994,14 +1999,14 @@ void CMainFrame::OnPowerCtrl()
 
 	TCHAR szCommand[MAX_PATH] = {0};
 	CString strText = pPowerCtrl->GetText();
-	if (strText == _T("上电"))
+	if (strText == _T("闭合"))
 	{
 		_stprintf_s(szCommand, _T("*SET LAN %d POWER ON"), Global::g_Config.nPowerLanIndex);
 		if ( Global::g_Config.nPowerLanIndex == 0 )
 			TW::SendCmd(_T("*SET POWER ON"));
 		else 
 			TW::SendCmd(szCommand);
-		pPowerCtrl->SetText(_T("断"));
+		pPowerCtrl->SetText(_T("断"));
 	}
 	else
 	{
@@ -2010,7 +2015,7 @@ void CMainFrame::OnPowerCtrl()
 			TW::SendCmd(_T("*SET POWER OFF"));
 		else
 			TW::SendCmd(szCommand);
-		pPowerCtrl->SetText(_T("上电"));
+		pPowerCtrl->SetText(_T("闭合"));
 	}
 }
 

+ 2 - 0
SATHelper/SATHelper/MainFrm.h

@@ -26,6 +26,7 @@
 #include "UB530View.h"
 #include "filehelper.h"
 #include "DevicesWnd.h"
+#include "UpgradeWnd.h"
 //////////////////////////////////////////////////////////////////////////
 #include "TrayIcon.h"
 #define USE_TRAYICON 1
@@ -82,6 +83,7 @@ protected:  // 控件条嵌入成员
 #endif
 	CIRControlWnd     m_wndIRControl;
 	CDevicesWnd		  m_wndDevices;
+	CUpgradeWnd		  m_wndUpgrade;
 #endif
 
 #if __OUTLOOKBAR__

+ 2 - 0
SATHelper/SATHelper/SATHelper.vcxproj

@@ -249,6 +249,7 @@
     <ClInclude Include="tinyxml2.h" />
     <ClInclude Include="TrayIcon.h" />
     <ClInclude Include="UB530View.h" />
+    <ClInclude Include="UpgradeWnd.h" />
     <ClInclude Include="USBUpgradeDLL.h" />
   </ItemGroup>
   <ItemGroup>
@@ -304,6 +305,7 @@
     </ClCompile>
     <ClCompile Include="TrayIcon.cpp" />
     <ClCompile Include="UB530View.cpp" />
+    <ClCompile Include="UpgradeWnd.cpp" />
     <ClCompile Include="USBUpgradeDLL.cpp" />
   </ItemGroup>
   <ItemGroup>

+ 6 - 0
SATHelper/SATHelper/SATHelper.vcxproj.filters

@@ -204,6 +204,9 @@
     <ClInclude Include="USBUpgradeDLL.h">
       <Filter>头文件</Filter>
     </ClInclude>
+    <ClInclude Include="UpgradeWnd.h">
+      <Filter>DockPane</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="SATHelper.cpp">
@@ -332,6 +335,9 @@
     <ClCompile Include="USBUpgradeDLL.cpp">
       <Filter>源文件</Filter>
     </ClCompile>
+    <ClCompile Include="UpgradeWnd.cpp">
+      <Filter>DockPane</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="SATHelper.rc">

+ 196 - 0
SATHelper/SATHelper/UpgradeWnd.cpp

@@ -0,0 +1,196 @@
+// 这段 MFC 示例源代码演示如何使用 MFC Microsoft Office Fluent 用户界面
+// (“Fluent UI”)。该示例仅供参考,
+// 用以补充《Microsoft 基础类参考》和
+// MFC C++ 库软件随附的相关电子文档。
+// 复制、使用或分发 Fluent UI 的许可条款是单独提供的。
+// 若要了解有关 Fluent UI 许可计划的详细信息,请访问
+// https://go.microsoft.com/fwlink/?LinkId=238214.
+//
+// 版权所有(C) Microsoft Corporation
+// 保留所有权利。
+
+#include "stdafx.h"
+#include "framework.h"
+
+#include "UpgradeWnd.h"
+#include "Resource.h"
+#include "MainFrm.h"
+#include "SATHelper.h"
+#include <filehelper.h>
+
+#ifdef _DEBUG
+#undef THIS_FILE
+static char THIS_FILE[] = __FILE__;
+#define new DEBUG_NEW
+#endif
+
+extern CMainFrame* g_pMainFrame;
+
+// 重启进程按钮id;
+#define ID_BUTTON_RESTART_PROC 4
+// 复制框控件id;
+#define ID_CHECKBOX_SIGNAL_TYPE 5
+// 下拉框控件id;
+#define ID_COMBOBOX_SIGNAL_FILE 6
+/////////////////////////////////////////////////////////////////////////////
+// CResourceViewBar
+
+CUpgradeWnd::CUpgradeWnd() noexcept
+{
+	m_nComboHeight = 0;
+}
+
+CUpgradeWnd::~CUpgradeWnd()
+{
+	RedRat::UnloadLibrary();	
+}
+
+
+BEGIN_MESSAGE_MAP(CUpgradeWnd, CDockablePane)
+	ON_WM_CREATE()
+	ON_WM_SIZE()
+	ON_COMMAND(ID_EXPAND_ALL, OnExpandAllProperties)
+	ON_UPDATE_COMMAND_UI(ID_EXPAND_ALL, OnUpdateExpandAllProperties)
+	ON_COMMAND(ID_SORTPROPERTIES, OnSortProperties)
+	ON_UPDATE_COMMAND_UI(ID_SORTPROPERTIES, OnUpdateSortProperties)
+	ON_COMMAND(ID_PROPERTIES1, OnProperties1)
+	ON_UPDATE_COMMAND_UI(ID_PROPERTIES1, OnUpdateProperties1)
+	ON_COMMAND(ID_PROPERTIES2, OnProperties2)
+	ON_UPDATE_COMMAND_UI(ID_PROPERTIES2, OnUpdateProperties2)
+	ON_WM_SETFOCUS()
+	ON_WM_SETTINGCHANGE()
+	ON_WM_PAINT()
+	
+	ON_WM_CONTEXTMENU()
+END_MESSAGE_MAP()
+
+/////////////////////////////////////////////////////////////////////////////
+// CResourceViewBar 消息处理程序
+
+void CUpgradeWnd::AdjustLayout()
+{
+	if (GetSafeHwnd() == nullptr || (AfxGetMainWnd() != nullptr && AfxGetMainWnd()->IsIconic()))
+	{
+		return;
+	}
+}
+
+int CUpgradeWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
+{
+	if (CDockablePane::OnCreate(lpCreateStruct) == -1)
+		return -1;
+
+	CRect rectDummy;
+	rectDummy.SetRectEmpty();
+
+	// 创建组合: 
+	const DWORD dwViewStyle = WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST | WS_BORDER | CBS_SORT | WS_CLIPSIBLINGS | WS_CLIPCHILDREN;
+
+	// 设置最小窗体;
+	SetMinSize((530, 260));
+
+	// 校正布局;
+	AdjustLayout();
+
+	return 0;
+}
+
+void CUpgradeWnd::OnSize(UINT nType, int cx, int cy)
+{
+	CDockablePane::OnSize(nType, cx, cy);
+
+	TRACE2("坐标:%d,%d\n", cx, cy);
+
+	AdjustLayout();
+}
+
+void CUpgradeWnd::OnExpandAllProperties()
+{
+	//m_wndPropList.ExpandAll();
+}
+
+void CUpgradeWnd::OnUpdateExpandAllProperties(CCmdUI* /* pCmdUI */)
+{
+}
+
+void CUpgradeWnd::OnSortProperties()
+{
+	//m_wndPropList.SetAlphabeticMode(!m_wndPropList.IsAlphabeticMode());
+}
+
+void CUpgradeWnd::OnUpdateSortProperties(CCmdUI* pCmdUI)
+{
+	//pCmdUI->SetCheck(m_wndPropList.IsAlphabeticMode());
+}
+
+void CUpgradeWnd::OnProperties1()
+{
+	// TODO: 在此处添加命令处理程序代码
+}
+
+void CUpgradeWnd::OnUpdateProperties1(CCmdUI* /*pCmdUI*/)
+{
+	// TODO: 在此处添加命令更新 UI 处理程序代码
+}
+
+void CUpgradeWnd::OnProperties2()
+{
+	// TODO: 在此处添加命令处理程序代码
+}
+
+void CUpgradeWnd::OnUpdateProperties2(CCmdUI* /*pCmdUI*/)
+{
+	// TODO: 在此处添加命令更新 UI 处理程序代码
+}
+
+void CUpgradeWnd::OnSetFocus(CWnd* pOldWnd)
+{
+	CDockablePane::OnSetFocus(pOldWnd);
+}
+
+void CUpgradeWnd::OnSettingChange(UINT uFlags, LPCTSTR lpszSection)
+{
+	CDockablePane::OnSettingChange(uFlags, lpszSection);
+	//SetPropListFont();
+}
+
+void CUpgradeWnd::SetPropListFont()
+{
+	::DeleteObject(m_fntPropList.Detach());
+
+	LOGFONT lf;
+	afxGlobalData.fontRegular.GetLogFont(&lf);
+
+	NONCLIENTMETRICS info;
+	info.cbSize = sizeof(info);
+
+	afxGlobalData.GetNonClientMetrics(info);
+
+	lf.lfHeight = info.lfMenuFont.lfHeight;
+	lf.lfWeight = info.lfMenuFont.lfWeight;
+	lf.lfItalic = info.lfMenuFont.lfItalic;
+
+	m_fntPropList.CreateFontIndirect(&lf);
+
+	//m_wndObjectCombo.SetFont(&m_fntPropList);
+}
+
+// 如果CDockablePane无控件,改变大小时背景会刷新失败;
+// 所以要重载onpaint;
+void CUpgradeWnd::OnPaint()
+{
+	CPaintDC dc(this); // device context for painting
+					   // TODO: 在此处添加消息处理程序代码
+					   // 不为绘图消息调用 	CDockablePane::OnPaint();
+	CRect rc;
+	GetClientRect(rc);
+	CBrush   brush;
+	brush.CreateSolidBrush(0xFFEFD5);
+	dc.FillRect(&rc, &brush);
+}
+
+
+void CUpgradeWnd::OnContextMenu(CWnd* /*pWnd*/, CPoint /*point*/)
+{
+	// TODO: 在此处添加消息处理程序代码
+}

+ 76 - 0
SATHelper/SATHelper/UpgradeWnd.h

@@ -0,0 +1,76 @@
+// 这段 MFC 示例源代码演示如何使用 MFC Microsoft Office Fluent 用户界面
+// (“Fluent UI”)。该示例仅供参考,
+// 用以补充《Microsoft 基础类参考》和
+// MFC C++ 库软件随附的相关电子文档。
+// 复制、使用或分发 Fluent UI 的许可条款是单独提供的。
+// 若要了解有关 Fluent UI 许可计划的详细信息,请访问
+// https://go.microsoft.com/fwlink/?LinkId=238214.
+//
+// 版权所有(C) Microsoft Corporation
+// 保留所有权利。
+
+#include <map>
+#pragma once
+
+class CUpgradeBar : public CMFCToolBar
+{
+public:
+	virtual void OnUpdateCmdUI(CFrameWnd* /*pTarget*/, BOOL bDisableIfNoHndler)
+	{
+		CMFCToolBar::OnUpdateCmdUI((CFrameWnd*) GetOwner(), bDisableIfNoHndler);
+	}
+
+	virtual BOOL AllowShowOnList() const { return FALSE; }
+};
+
+class CUpgradeWnd : public CDockablePane
+{
+// 构造
+public:
+	CUpgradeWnd() noexcept;
+
+	void AdjustLayout();
+
+// 特性
+public:
+
+protected:
+	CFont m_fntPropList;
+	
+// 实现
+public:
+	virtual ~CUpgradeWnd();
+	// 去掉关闭按钮;但组合多个pane时无效;
+	virtual BOOL CanBeClosed() const { return FALSE; };
+	// 禁止拖动Pane;
+	virtual BOOL FloatPane(CRect rectFloat, AFX_DOCK_METHOD dockMethod = DM_UNKNOWN, bool bShow = true) { return FALSE; }
+	// 禁用停靠,双击底部无效(不会停靠)
+	//virtual BOOL CanFloat() const { return FALSE; };
+	// 禁用大小;//崩溃;
+	//virtual BOOL IsResizable() const {return FALSE;}
+protected:
+	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
+	afx_msg void OnSize(UINT nType, int cx, int cy);
+	afx_msg void OnExpandAllProperties();
+	afx_msg void OnUpdateExpandAllProperties(CCmdUI* pCmdUI);
+	afx_msg void OnSortProperties();
+	afx_msg void OnUpdateSortProperties(CCmdUI* pCmdUI);
+	afx_msg void OnProperties1();
+	afx_msg void OnUpdateProperties1(CCmdUI* pCmdUI);
+	afx_msg void OnProperties2();
+	afx_msg void OnUpdateProperties2(CCmdUI* pCmdUI);
+	afx_msg void OnSetFocus(CWnd* pOldWnd);
+	afx_msg void OnSettingChange(UINT uFlags, LPCTSTR lpszSection);
+
+	DECLARE_MESSAGE_MAP()
+
+	void SetPropListFont();
+
+	int m_nComboHeight;
+
+public:
+	afx_msg void OnPaint();
+	// 重载(禁用面板自带菜单)
+	afx_msg void OnContextMenu(CWnd* /*pWnd*/, CPoint /*point*/);
+};
+

+ 3 - 3
SATHelper/SATHelper/res/ribbon.mfcribbon-ms

@@ -1085,7 +1085,7 @@
                                 <ELEMENTS>
                                     <ELEMENT>
                                         <ELEMENT_NAME>Label</ELEMENT_NAME>
-                                        <TEXT>电源端口:</TEXT>
+                                        <TEXT>控制端口:</TEXT>
                                         <PALETTE_TOP>FALSE</PALETTE_TOP>
                                         <ALWAYS_LARGE>FALSE</ALWAYS_LARGE>
                                         <INDEX_SMALL>-1</INDEX_SMALL>
@@ -1098,7 +1098,7 @@
                                             <NAME>ID_COMBO_POWER</NAME>
                                             <VALUE>32833</VALUE>
                                         </ID>
-                                        <TEXT>电源端口</TEXT>
+                                        <TEXT>控制端口</TEXT>
                                         <PALETTE_TOP>FALSE</PALETTE_TOP>
                                         <ALWAYS_LARGE>FALSE</ALWAYS_LARGE>
                                         <INDEX_SMALL>-1</INDEX_SMALL>
@@ -1117,7 +1117,7 @@
                                             <NAME>ID_POWER_CTRL</NAME>
                                             <VALUE>32834</VALUE>
                                         </ID>
-                                        <TEXT>上电</TEXT>
+                                        <TEXT>闭合</TEXT>
                                         <KEYS>F</KEYS>
                                         <PALETTE_TOP>FALSE</PALETTE_TOP>
                                         <ALWAYS_LARGE>FALSE</ALWAYS_LARGE>