sat23 4 лет назад
Родитель
Сommit
d24eb51d88

+ 2 - 0
SATHelper/SATHelper/Global.cpp

@@ -351,6 +351,8 @@ namespace Global
 		// µçÊÓ´®¿Ú;
 		g_Config.tvPort = GetPrivateProfileInt(_T("SATHelper"), _T("TVPort"), 0, szConfigpath);
 		g_Config.enableTVPort = GetPrivateProfileInt(_T("SATHelper"), _T("enableTVPort"), 0, szConfigpath);
+
+		g_Config.bRememberFTPInfo = GetPrivateProfileInt(_T("SATHelper"), _T("rememberFTPInfo"), 0, szConfigpath);
 	}
 
 	BOOL GetOrientation(IN Image* pImg)

+ 3 - 0
SATHelper/SATHelper/Global.h

@@ -68,6 +68,9 @@ namespace Global
 		// 是否启动TV串口;
 		bool enableTVPort;
 		int tvPort;
+
+		// 是否记住ftp信息;
+		bool bRememberFTPInfo;
 	}STConfig, * pSTConfig;
 
 	// 读取baidu.cfg配置文件内容;

+ 2 - 2
SATHelper/SATHelper/IRControlWnd.cpp

@@ -125,8 +125,8 @@ void CIRControlWnd::AdjustLayout()
 		return;
 	}
 
-	int dr = 3;	// 行间距
-	int dc = 5; // 列间距;
+	const int dr = 3;	// 行间距
+	const int dc = 5; // 列间距;
 	CRect rcCtrl;
 	CRect rectClient;
 	GetClientRect(rectClient);

+ 1 - 1
SATHelper/SATHelper/MainFrm.cpp

@@ -501,7 +501,7 @@ BOOL CMainFrame::CreateDockingWindows()
 		return FALSE; // 未能创建
 	}
 
-	CString strUpgradeWnd = _T("升级");
+	CString strUpgradeWnd = _T("USB升级");
 	if (!m_wndUpgrade.Create(strUpgradeWnd, this, rcPanel, TRUE, ID_VIEW_OUTPUTWND, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_RIGHT | CBRS_FLOAT_MULTI))
 	{
 		TRACE0("未能创建“升级”窗口\n");

+ 120 - 5
SATHelper/SATHelper/UpgradeWnd.cpp

@@ -37,7 +37,7 @@ extern CMainFrame* g_pMainFrame;
 
 CUpgradeWnd::CUpgradeWnd() noexcept
 {
-	m_nComboHeight = 0;
+	m_nCtrlHeight = 0;
 }
 
 CUpgradeWnd::~CUpgradeWnd()
@@ -62,6 +62,7 @@ BEGIN_MESSAGE_MAP(CUpgradeWnd, CDockablePane)
 	ON_WM_PAINT()
 	
 	ON_WM_CONTEXTMENU()
+	ON_WM_CTLCOLOR()
 END_MESSAGE_MAP()
 
 /////////////////////////////////////////////////////////////////////////////
@@ -73,6 +74,51 @@ void CUpgradeWnd::AdjustLayout()
 	{
 		return;
 	}
+
+	const int margin = 6;
+	const int top = 10;		// 离顶部距离;
+	const int dr = 3;		// 行间距
+	const int dc = 5; 		// 列间距;
+	int nHeight = top;
+	CRect rcCtrl;
+	CRect rectClient;
+	GetClientRect(rectClient);
+
+	// 1、编辑框;
+	m_text_path.GetWindowRect(rcCtrl);
+	ScreenToClient(rcCtrl);
+	m_text_path.SetWindowPos(nullptr, rectClient.left + margin, rectClient.top + top, rcCtrl.Width(), rcCtrl.Height(), SWP_NOACTIVATE | SWP_NOZORDER);
+
+	m_edit_path.SetWindowPos(nullptr, rcCtrl.right + dr, rectClient.top + top, rectClient.Width() - rcCtrl.Width() - margin*2 - dr, m_nCtrlHeight, SWP_NOACTIVATE | SWP_NOZORDER);
+	nHeight += m_nCtrlHeight + dr;
+
+	// 2、ftp用户;
+	m_text_user.GetWindowRect(rcCtrl);
+	ScreenToClient(rcCtrl);
+	m_text_user.SetWindowPos(nullptr, rectClient.left + margin, rectClient.top + nHeight, rcCtrl.Width(), rcCtrl.Height(), SWP_NOACTIVATE | SWP_NOZORDER);
+
+	m_ftp_user.SetWindowPos(nullptr, rcCtrl.right + dr, rectClient.top + nHeight, rectClient.Width() - rcCtrl.Width() - margin * 2 - dr, m_nCtrlHeight, SWP_NOACTIVATE | SWP_NOZORDER);
+	nHeight += m_nCtrlHeight + dr;
+
+	// 3、ftp密码;
+	m_text_password.GetWindowRect(rcCtrl);
+	ScreenToClient(rcCtrl);
+	m_text_password.SetWindowPos(nullptr, rectClient.left + margin, rectClient.top + nHeight, rcCtrl.Width(), rcCtrl.Height(), SWP_NOACTIVATE | SWP_NOZORDER);
+
+	m_ftp_password.SetWindowPos(nullptr, rcCtrl.right + dr, rectClient.top + nHeight, rectClient.Width() - rcCtrl.Width() - margin * 2 - dr, m_nCtrlHeight, SWP_NOACTIVATE | SWP_NOZORDER);
+	nHeight += m_nCtrlHeight + dr;
+
+	// 4、是否记住ftp信息;
+	m_check_remember.GetWindowRect(rcCtrl);
+	ScreenToClient(rcCtrl);
+	m_check_remember.SetWindowPos(nullptr, rectClient.left + margin, rectClient.top + nHeight, rcCtrl.Width(), rcCtrl.Height(), SWP_NOACTIVATE | SWP_NOZORDER);
+	nHeight += rcCtrl.Height() + dr;
+
+	// 5、升级;
+	m_btnUpgrade.GetWindowRect(rcCtrl);
+	ScreenToClient(rcCtrl);
+	m_btnUpgrade.SetWindowPos(nullptr, rectClient.left + margin, rectClient.top + nHeight, rcCtrl.Width(), rcCtrl.Height(), SWP_NOACTIVATE | SWP_NOZORDER);
+
 }
 
 int CUpgradeWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
@@ -80,12 +126,59 @@ int CUpgradeWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
 	if (CDockablePane::OnCreate(lpCreateStruct) == -1)
 		return -1;
 
-	CRect rectDummy;
-	rectDummy.SetRectEmpty();
+	CRect rectDummy(0,0,60,23);
 
 	// 创建组合: 
 	const DWORD dwViewStyle = WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST | WS_BORDER | CBS_SORT | WS_CLIPSIBLINGS | WS_CLIPCHILDREN;
 
+	// 编辑框;
+	m_text_path.Create(_T("路径:"), SS_CENTER | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE, rectDummy, this, IDC_STATIC);
+	if (!m_edit_path.Create( WS_CHILD | WS_VISIBLE, rectDummy, this, 8))
+	{
+		return -1;
+	}
+
+	if (!m_btnUpgrade.Create(_T("升级"), WS_CHILD | WS_VISIBLE, rectDummy, this, 9))
+	{
+		return -1;
+	}
+
+	m_text_user.Create(_T("FTP账号:"), SS_CENTER | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE, rectDummy, this, IDC_STATIC);
+	if (!m_ftp_user.Create(WS_CHILD | WS_VISIBLE, rectDummy, this, 10))
+	{
+		return -1;
+	}
+
+	m_text_password.Create(_T("FTP密码:"), SS_CENTER | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE, rectDummy, this, IDC_STATIC);
+	if (!m_ftp_password.Create(WS_CHILD | WS_VISIBLE, rectDummy, this, 11))
+	{
+		return -1;
+	}
+
+	if (!m_check_remember.Create(_T("记住信息"), WS_CHILD | WS_VISIBLE, rectDummy, this, 12))
+	{
+		return -1;
+	}
+
+	m_check_remember.SetCheck(Global::g_Config.bRememberFTPInfo ? BST_CHECKED : BST_UNCHECKED);
+	m_check_remember.m_bHighlightChecked = TRUE;
+	// CMFCButton只能用图标来显示check;
+	m_check_remember.SetImage(IDB_UNCHECKED);
+	m_check_remember.SetCheckedImage(IDB_CHECKED);
+	m_check_remember.m_bTransparent = FALSE;
+	m_check_remember.m_bDrawFocus = FALSE;
+	m_check_remember.m_nFlatStyle = CMFCButton::BUTTONSTYLE_FLAT;
+	m_check_remember.SizeToContent();
+
+
+	// 以编辑框高度为所有控件高度标准;
+	CRect rcCtrl;
+	m_edit_path.GetClientRect(&rcCtrl);
+	m_nCtrlHeight = rcCtrl.Height();
+
+	// 设置控件样式;
+	SetPropListFont();
+
 	// 设置最小窗体;
 	SetMinSize((530, 260));
 
@@ -151,7 +244,6 @@ void CUpgradeWnd::OnSetFocus(CWnd* pOldWnd)
 void CUpgradeWnd::OnSettingChange(UINT uFlags, LPCTSTR lpszSection)
 {
 	CDockablePane::OnSettingChange(uFlags, lpszSection);
-	//SetPropListFont();
 }
 
 void CUpgradeWnd::SetPropListFont()
@@ -172,7 +264,10 @@ void CUpgradeWnd::SetPropListFont()
 
 	m_fntPropList.CreateFontIndirect(&lf);
 
-	//m_wndObjectCombo.SetFont(&m_fntPropList);
+	m_text_path.SetFont(&m_fntPropList);
+	m_text_user.SetFont(&m_fntPropList);
+	m_text_password.SetFont(&m_fntPropList);
+
 }
 
 // 如果CDockablePane无控件,改变大小时背景会刷新失败;
@@ -194,3 +289,23 @@ void CUpgradeWnd::OnContextMenu(CWnd* /*pWnd*/, CPoint /*point*/)
 {
 	// TODO: 在此处添加消息处理程序代码
 }
+
+
+HBRUSH CUpgradeWnd::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
+{
+	HBRUSH hbr = CDockablePane::OnCtlColor(pDC, pWnd, nCtlColor);
+
+	// TODO:  在此更改 DC 的任何特性
+	if (nCtlColor == CTLCOLOR_STATIC && pWnd->GetDlgCtrlID() == IDC_STATIC ) //静态文本颜色,并且指定控件ID号       
+	{
+		pDC->SetTextColor(RGB(255, 0, 0));
+		//pDC->SetBkColor(RGB(191,219,255));     //静态控件的背景颜色设置,红字蓝底。          
+		pDC->SetBkMode(TRANSPARENT);  //静态文本框背景设置为透明
+		HBRUSH brush;
+		brush = CreateSolidBrush(0xFFEFD5);//对话框的RGB值
+		hbr = (HBRUSH)brush;
+	}
+
+	// TODO:  如果默认的不是所需画笔,则返回另一个画笔
+	return hbr;
+}

+ 15 - 2
SATHelper/SATHelper/UpgradeWnd.h

@@ -36,7 +36,19 @@ public:
 
 protected:
 	CFont m_fntPropList;
-	
+	// 路径编辑框;
+	CStatic m_text_path;
+	CMFCEditBrowseCtrl m_edit_path;
+	// 升级按钮;
+	CMFCButton m_btnUpgrade;
+	// ftp用户名;
+	CStatic m_text_user;
+	CEdit m_ftp_user;
+	// ftp密码;
+	CStatic m_text_password;
+	CEdit m_ftp_password;
+	// 是否记住ftp账号密码;
+	CMFCButton m_check_remember;
 // 实现
 public:
 	virtual ~CUpgradeWnd();
@@ -66,11 +78,12 @@ protected:
 
 	void SetPropListFont();
 
-	int m_nComboHeight;
+	int m_nCtrlHeight;
 
 public:
 	afx_msg void OnPaint();
 	// 重载(禁用面板自带菜单)
 	afx_msg void OnContextMenu(CWnd* /*pWnd*/, CPoint /*point*/);
+	afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
 };