Răsfoiți Sursa

完成读取文件

Jeff 4 ani în urmă
părinte
comite
3acc26774b

+ 2 - 2
TCLTools/TCLTools/TCLTools.rc

@@ -87,7 +87,7 @@ BEGIN
     LTEXT           "串口",IDC_STATIC,11,11,15,8
     COMBOBOX        IDC_COMBO_CMDS,28,27,151,159,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     LTEXT           "指令",IDC_STATIC,11,29,15,8
-    EDITTEXT        IDC_EDIT2,28,44,151,14,ES_AUTOHSCROLL
+    EDITTEXT        IDC_EDIT_KEY,28,44,151,14,ES_AUTOHSCROLL | ES_READONLY
     PUSHBUTTON      "打开key",BTN_OPEN_FILE,181,44,34,14
     CONTROL         "HEX-BIN",IDC_CHECK_HB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,219,46,42,10
     CONTROL         "BIN-HEX",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,259,46,42,10
@@ -96,7 +96,7 @@ BEGIN
     EDITTEXT        IDC_EDIT_INT,49,89,74,12,ES_AUTOHSCROLL | ES_READONLY
     EDITTEXT        IDC_EDIT_STR,49,106,286,14,ES_AUTOHSCROLL | ES_READONLY
     LTEXT           "单字节:",IDC_STATIC,16,89,28,8
-    EDITTEXT        IDC_EDIT_HEX,49,125,286,67,ES_MULTILINE | ES_AUTOHSCROLL | ES_READONLY
+    EDITTEXT        IDC_EDIT_HEX,49,125,286,67,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY
     PUSHBUTTON      "执行",BTN_EXEC_CMD,181,27,34,14
     PUSHBUTTON      "打开串口",BTN_OPEN_PORT,82,8,50,14
     LTEXT           "字符串:",IDC_STATIC,16,108,28,8

+ 33 - 4
TCLTools/TCLTools/TCLToolsDlg.cpp

@@ -113,6 +113,7 @@ BEGIN_MESSAGE_MAP(CTCLToolsDlg, CDialog)
 	//}}AFX_MSG_MAP
     ON_BN_CLICKED(BTN_OPEN_PORT, &CTCLToolsDlg::OnBnClickedOpenPort)
     ON_BN_CLICKED(BTN_EXEC_CMD, &CTCLToolsDlg::OnBnClickedExecCmd)
+	ON_BN_CLICKED(BTN_OPEN_FILE, &CTCLToolsDlg::OnBnClickedOpenFile)
 END_MESSAGE_MAP()
 
 
@@ -287,15 +288,28 @@ void CTCLToolsDlg::OnBnClickedExecCmd()
         if ( g_tclCommand.IsOpen() ) {
             bool bStatus = false;
             CommandParam cmdpara;
-            m_cbCommands.GetLBText(nCurSel, strText);
-            g_tclCommand.GetCommandParams(strText.GetString(), cmdpara);
+			CString strCMDName;
+            m_cbCommands.GetLBText(nCurSel, strCMDName);
+            g_tclCommand.GetCommandParams(strCMDName.GetString(), cmdpara);
             if ( cmdpara.nOption == CMDOPT_Set )
             {
                 // 需要选择文件;
+				GetDlgItemText(IDC_EDIT_KEY, strText);
+				if ( strText.GetLength() == 0)
+				{
+					MessageBox("没有选择Key文件", "错误!", MB_ICONEXCLAMATION);
+					return;
+				}
+				
+				std::string data;
+				if ( ReadKeyFromFile(strText.GetString(), data) )
+				{
+					g_tclCommand.SendCommand(strCMDName.GetString(), cmdpara, (LPVOID)data.c_str(), data.size());
+				}
             }
             else
             {
-                bStatus = g_tclCommand.SendCommand(strText.GetString(), cmdpara);
+                bStatus = g_tclCommand.SendCommand(strCMDName.GetString(), cmdpara);
             }
 
             if ( bStatus )
@@ -370,4 +384,19 @@ void CTCLToolsDlg::ClearEdit()
     SetDlgItemText(IDC_EDIT_INT, "");
     SetDlgItemText(IDC_EDIT_STR, "");
     SetDlgItemText(IDC_EDIT_HEX, "");
-}
+}
+
+void CTCLToolsDlg::OnBnClickedOpenFile()
+{
+	// TODO: 在此添加控件通知处理程序代码
+	char szFilters[] = "所有文件类型(*.*)\0*.*\0\0";
+
+	CFileDialog OpenDlg(TRUE);
+	OpenDlg.m_ofn.lpstrTitle = "Open File";
+	OpenDlg.m_ofn.lpstrFilter = szFilters;
+
+	if (IDOK == OpenDlg.DoModal())
+	{
+		SetDlgItemText(IDC_EDIT_KEY, OpenDlg.GetPathName());
+	}
+}

+ 1 - 0
TCLTools/TCLTools/TCLToolsDlg.h

@@ -41,4 +41,5 @@ public:
     bool IsCommandExist(CommandParam &cmd, std::vector<CommandParam> &vtCMDParams);
     afx_msg void OnBnClickedExecCmd();
     void ClearEdit();
+	afx_msg void OnBnClickedOpenFile();
 };

+ 1 - 0
TCLTools/TCLTools/resource.h

@@ -8,6 +8,7 @@
 #define IDC_COMBO_PORTS                 1001
 #define IDC_COMBO_CMDS                  1002
 #define IDC_EDIT2                       1003
+#define IDC_EDIT_KEY                    1003
 #define BTN_OPEN_FILE                   1004
 #define IDC_CHECK_HB                    1005
 #define IDC_CHECK2                      1006