Pārlūkot izejas kodu

新增按钮:加载外部命令行文件;

sat23 4 gadi atpakaļ
vecāks
revīzija
4aa508c4f5

+ 1 - 0
TCLTools/TCLTools/TCLTools.cpp

@@ -51,6 +51,7 @@ BOOL CTCLToolsApp::InitInstance()
 	AfxEnableControlContainer();
 
     g_tclCommand.SetInternalCMDParams(BIN_CMD);
+    // 应该动态加载;
     g_tclCommand.SetExternalCMDParams("cmds.dat");
 
 	// 标准初始化

+ 7 - 6
TCLTools/TCLTools/TCLTools.rc

@@ -77,10 +77,10 @@ IDR_MAINFRAME           ICON                    "res\\TCLTools.ico"
 // Dialog
 //
 
-IDD_TCLTOOLS_DIALOG DIALOGEX 0, 0, 347, 202
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+IDD_TCLTOOLS_DIALOG DIALOGEX 0, 0, 347, 273
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 EXSTYLE WS_EX_APPWINDOW
-CAPTION "TCLTools"
+CAPTION "抄写工具"
 FONT 9, "MS Shell Dlg", 0, 0, 0x1
 BEGIN
     COMBOBOX        IDC_COMBO_PORTS,28,9,52,76,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
@@ -96,15 +96,16 @@ 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_AUTOVSCROLL | ES_READONLY | WS_VSCROLL
+    EDITTEXT        IDC_EDIT_HEX,49,125,286,133,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL
     PUSHBUTTON      "执行",BTN_EXEC_CMD,181,27,34,14
     PUSHBUTTON      "打开串口",BTN_OPEN_PORT,82,8,50,14
     LTEXT           "字符串:",IDC_STATIC,16,108,28,8
     LTEXT           "十六进制:",IDC_STATIC,10,125,35,8
     EDITTEXT        IDC_EDIT_STATUS,49,70,74,14,ES_AUTOHSCROLL | ES_READONLY
-    GROUPBOX        "结果",IDC_STATIC,7,60,333,135
+    GROUPBOX        "结果",IDC_STATIC,7,60,333,203
     LTEXT           "错误:",IDC_STATIC,131,72,22,8
     EDITTEXT        IDC_EDIT_ERROR,153,70,181,31,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL
+    PUSHBUTTON      "重新加载命令",BTN_RELOAD_CMD,134,8,50,14
 END
 
 
@@ -160,7 +161,7 @@ BEGIN
         LEFTMARGIN, 7
         RIGHTMARGIN, 340
         TOPMARGIN, 7
-        BOTTOMMARGIN, 195
+        BOTTOMMARGIN, 266
     END
 END
 #endif    // APSTUDIO_INVOKED

+ 21 - 1
TCLTools/TCLTools/TCLToolsDlg.cpp

@@ -114,6 +114,7 @@ BEGIN_MESSAGE_MAP(CTCLToolsDlg, CDialog)
     ON_BN_CLICKED(BTN_OPEN_PORT, &CTCLToolsDlg::OnBnClickedOpenPort)
     ON_BN_CLICKED(BTN_EXEC_CMD, &CTCLToolsDlg::OnBnClickedExecCmd)
 	ON_BN_CLICKED(BTN_OPEN_FILE, &CTCLToolsDlg::OnBnClickedOpenFile)
+    ON_BN_CLICKED(BTN_RELOAD_CMD, &CTCLToolsDlg::OnBnClickedReloadCmd)
 END_MESSAGE_MAP()
 
 
@@ -213,6 +214,13 @@ void CTCLToolsDlg::InitSerialCombobox()
 
 void CTCLToolsDlg::InitCommandCombobox()
 {
+    // 获取当前选择的命令;
+    CString strText;
+    int nCurSel = m_cbCommands.GetCurSel();
+    if ( nCurSel != CB_ERR )
+        m_cbCommands.GetLBText(nCurSel, strText);
+
+    // 清空;
     m_cbCommands.ResetContent();
     std::vector<CommandParam> ExternalCMDParams = g_tclCommand.GetExternalCMDParams();
     std::vector<CommandParam> InternalCMDParams = g_tclCommand.GetInternalCMDParams();
@@ -230,6 +238,10 @@ void CTCLToolsDlg::InitCommandCombobox()
     {
         m_cbCommands.AddString(it->name.c_str());
     }
+
+    nCurSel = m_cbCommands.SelectString(0, strText);
+    if ( nCurSel == CB_ERR )
+        m_cbCommands.SetCurSel(0);
 }
 
 void CTCLToolsDlg::OnBnClickedOpenPort()
@@ -250,6 +262,7 @@ void CTCLToolsDlg::OnBnClickedOpenPort()
             {
                 SetDlgItemText(BTN_OPEN_PORT, _T("关闭串口"));
                 m_cbSerial.EnableWindow(FALSE);
+                //g_tclCommand.SetTimeouts(10, 50, 3000, 10, 1500);
             }
             else
             {
@@ -403,5 +416,12 @@ void CTCLToolsDlg::OnCancel()
 {
     // TODO: 在此添加专用代码和/或调用基类
 
-    CDialog::OnCancel();
+   // CDialog::OnCancel();
+}
+
+void CTCLToolsDlg::OnBnClickedReloadCmd()
+{
+    // 重新加载外部命令文件;
+    g_tclCommand.SetExternalCMDParams("cmds.dat");
+    InitCommandCombobox();
 }

+ 2 - 0
TCLTools/TCLTools/TCLToolsDlg.h

@@ -45,4 +45,6 @@ public:
 protected:
     virtual void OnOK();
     virtual void OnCancel();
+public:
+    afx_msg void OnBnClickedReloadCmd();
 };

+ 3 - 2
TCLTools/TCLTools/resource.h

@@ -19,8 +19,9 @@
 #define BTN_EXEC_CMD                    1010
 #define BTN_OPEN_PORT                   1011
 #define IDC_EDIT_STATUS                 1012
-#define IDC_EDIT_STATUS2                1013
 #define IDC_EDIT_ERROR                  1013
+#define IDC_BUTTON1                     1014
+#define BTN_RELOAD_CMD                  1014
 
 // Next default values for new objects
 // 
@@ -28,7 +29,7 @@
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_NEXT_RESOURCE_VALUE        130
 #define _APS_NEXT_COMMAND_VALUE         32771
-#define _APS_NEXT_CONTROL_VALUE         1013
+#define _APS_NEXT_CONTROL_VALUE         1015
 #define _APS_NEXT_SYMED_VALUE           101
 #endif
 #endif