Browse Source

添加字符串与十六进制之间的转换功能界面。

jianfeng1.wang 2 years ago
parent
commit
0b9722e5d4

+ 43 - 38
TCLTools/TCLTools/TCLTools.rc

@@ -77,47 +77,52 @@ IDR_MAINFRAME           ICON                    "res\\TCLTools.ico"
 // Dialog
 // Dialog
 //
 //
 
 
-IDD_TCLTOOLS_DIALOG DIALOGEX 0, 0, 511, 345
+IDD_TCLTOOLS_DIALOG DIALOGEX 0, 0, 602, 354
 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 EXSTYLE WS_EX_APPWINDOW
 EXSTYLE WS_EX_APPWINDOW
 CAPTION "研发抄写测试工具"
 CAPTION "研发抄写测试工具"
 FONT 9, "MS Shell Dlg", 0, 0, 0x1
 FONT 9, "MS Shell Dlg", 0, 0, 0x1
 BEGIN
 BEGIN
-    COMBOBOX        IDC_COMBO_PORTS,39,11,45,76,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "串口:",IDC_STATIC,15,13,22,8
-    COMBOBOX        IDC_COMBO_CMDS,39,27,144,159,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "设置:",IDC_STATIC,15,29,22,8
-    EDITTEXT        IDC_EDIT_KEY,39,96,198,14,ES_AUTOHSCROLL
-    PUSHBUTTON      "打开key",BTN_OPEN_FILE,283,96,34,14,NOT WS_VISIBLE
-    CONTROL         "HEX-BIN",IDC_CHECK_HB,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,323,98,36,10
-    CONTROL         "BIN-HEX",IDC_CHECK_BH,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,368,98,37,10
-    LTEXT           "内容:",IDC_STATIC,15,98,22,8
-    LTEXT           "状态:",IDC_STATIC,22,126,22,8
-    EDITTEXT        IDC_EDIT_INT,49,141,74,12,ES_AUTOHSCROLL | ES_READONLY
-    EDITTEXT        IDC_EDIT_STR,49,156,451,87,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL
-    LTEXT           "单字节:",IDC_STATIC,16,141,28,8
-    EDITTEXT        IDC_EDIT_HEX,49,245,451,89,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL
-    PUSHBUTTON      "执行",BTN_EXEC_CMD,189,26,40,14
-    PUSHBUTTON      "打开串口",BTN_OPEN_PORT,189,10,50,14
-    LTEXT           "发送:",IDC_STATIC,22,158,22,8
-    LTEXT           "返回:",IDC_STATIC,20,247,22,8
-    EDITTEXT        IDC_EDIT_STATUS,49,124,74,14,ES_AUTOHSCROLL | ES_READONLY
-    GROUPBOX        "结果",IDC_STATIC_RESULT,7,112,497,227
-    LTEXT           "错误:",IDC_STATIC,131,125,22,8
-    EDITTEXT        IDC_EDIT_ERROR,153,124,348,31,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL
-    PUSHBUTTON      "重新加载命令",BTN_RELOAD_CMD,242,10,50,14
-    COMBOBOX        IDC_COMBO_BUADRATE,124,11,58,123,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "波特率:",IDC_STATIC,96,13,28,8
-    COMBOBOX        IDC_COMBO_CMDS2,39,44,144,159,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "读取:",IDC_STATIC,15,46,22,8
-    PUSHBUTTON      "执行",BTN_EXEC_CMD2,189,43,40,14
-    COMBOBOX        IDC_COMBO_CMDS3,39,61,144,159,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "检验:",IDC_STATIC,15,63,22,8
-    PUSHBUTTON      "执行",BTN_EXEC_CMD3,189,60,40,14
-    COMBOBOX        IDC_COMBO_CMDS4,39,78,144,159,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "写入:",IDC_STATIC,15,80,22,8
-    PUSHBUTTON      "执行",BTN_EXEC_CMD4,189,77,40,14
-    CONTROL         "使用文件",IDC_CHECK_USEFILE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,240,98,43,10
+    COMBOBOX        IDC_COMBO_PORTS,39,16,45,76,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "串口:",IDC_STATIC,15,18,22,8
+    COMBOBOX        IDC_COMBO_CMDS,39,33,101,159,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "设置:",IDC_STATIC,15,35,22,8
+    EDITTEXT        IDC_EDIT_KEY,39,64,287,14,ES_AUTOHSCROLL
+    PUSHBUTTON      "打开key",BTN_OPEN_FILE,373,64,34,14,NOT WS_VISIBLE
+    CONTROL         "HEX-BIN",IDC_CHECK_HB,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,413,66,36,10
+    CONTROL         "BIN-HEX",IDC_CHECK_BH,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,458,66,37,10
+    LTEXT           "内容:",IDC_STATIC,15,66,22,8
+    LTEXT           "状态:",IDC_STATIC,14,98,22,8
+    EDITTEXT        IDC_EDIT_INT,147,96,70,14,ES_AUTOHSCROLL | ES_READONLY
+    EDITTEXT        IDC_EDIT_STR,39,114,549,49,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL
+    LTEXT           "单字节:",IDC_STATIC,117,98,28,8
+    EDITTEXT        IDC_EDIT_HEX,39,166,549,80,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL
+    PUSHBUTTON      "执行",BTN_EXEC_CMD,142,32,40,14
+    PUSHBUTTON      "打开串口",BTN_OPEN_PORT,189,15,40,14
+    LTEXT           "发送:",IDC_STATIC,14,116,22,8
+    LTEXT           "返回:",IDC_STATIC,12,168,22,8
+    EDITTEXT        IDC_EDIT_STATUS,39,96,70,14,ES_AUTOHSCROLL | ES_READONLY
+    GROUPBOX        "结果",IDC_STATIC_RESULT,8,83,586,265
+    LTEXT           "错误:",IDC_STATIC,225,98,22,8
+    EDITTEXT        IDC_EDIT_ERROR,246,96,342,15,ES_READONLY
+    PUSHBUTTON      "重载命令",BTN_RELOAD_CMD,231,15,38,14
+    COMBOBOX        IDC_COMBO_BUADRATE,124,16,58,123,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "波特率:",IDC_STATIC,95,18,28,8
+    COMBOBOX        IDC_COMBO_CMDS2,39,48,101,159,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "读取:",IDC_STATIC,15,50,22,8
+    PUSHBUTTON      "执行",BTN_EXEC_CMD2,142,47,40,14
+    COMBOBOX        IDC_COMBO_CMDS3,224,33,101,159,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "检验:",IDC_STATIC,200,35,22,8
+    PUSHBUTTON      "执行",BTN_EXEC_CMD3,327,32,40,14
+    COMBOBOX        IDC_COMBO_CMDS4,224,48,101,159,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "写入:",IDC_STATIC,200,50,22,8
+    PUSHBUTTON      "执行",BTN_EXEC_CMD4,327,47,40,14
+    CONTROL         "使用文件",IDC_CHECK_USEFILE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,330,66,43,10
+    EDITTEXT        IDC_EDIT_HEXSTRING,337,249,251,94,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL
+    EDITTEXT        IDC_EDIT_STRING,39,249,251,94,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL
+    PUSHBUTTON      "转十六进->",BTN_STR2HEX,293,273,41,14
+    PUSHBUTTON      "<-转字符串",BTN_HEX2STR,293,301,41,14
+    GROUPBOX        "配置",IDC_STATIC,7,3,588,80
 END
 END
 
 
 
 
@@ -171,9 +176,9 @@ BEGIN
     IDD_TCLTOOLS_DIALOG, DIALOG
     IDD_TCLTOOLS_DIALOG, DIALOG
     BEGIN
     BEGIN
         LEFTMARGIN, 7
         LEFTMARGIN, 7
-        RIGHTMARGIN, 504
+        RIGHTMARGIN, 595
         TOPMARGIN, 7
         TOPMARGIN, 7
-        BOTTOMMARGIN, 338
+        BOTTOMMARGIN, 347
     END
     END
 END
 END
 #endif    // APSTUDIO_INVOKED
 #endif    // APSTUDIO_INVOKED

+ 53 - 0
TCLTools/TCLTools/TCLToolsDlg.cpp

@@ -10,6 +10,7 @@
 #define new DEBUG_NEW
 #define new DEBUG_NEW
 #endif
 #endif
 
 
+COLORREF g_clrEyeGreen = RGB(204,232,205);
 // CTCLToolsDlg 对话框
 // CTCLToolsDlg 对话框
 
 
 
 
@@ -125,6 +126,9 @@ BEGIN_MESSAGE_MAP(CTCLToolsDlg, CDialog)
 	ON_BN_CLICKED(BTN_EXEC_CMD3, &CTCLToolsDlg::OnBnClickedExecCmd3)
 	ON_BN_CLICKED(BTN_EXEC_CMD3, &CTCLToolsDlg::OnBnClickedExecCmd3)
 	ON_BN_CLICKED(BTN_EXEC_CMD4, &CTCLToolsDlg::OnBnClickedExecCmd4)
 	ON_BN_CLICKED(BTN_EXEC_CMD4, &CTCLToolsDlg::OnBnClickedExecCmd4)
 	ON_BN_CLICKED(IDC_CHECK_USEFILE, &CTCLToolsDlg::OnBnClickedCheckUsefile)
 	ON_BN_CLICKED(IDC_CHECK_USEFILE, &CTCLToolsDlg::OnBnClickedCheckUsefile)
+	ON_WM_CTLCOLOR()
+	ON_BN_CLICKED(BTN_STR2HEX, &CTCLToolsDlg::OnBnClickedStr2hex)
+	ON_BN_CLICKED(BTN_HEX2STR, &CTCLToolsDlg::OnBnClickedHex2str)
 END_MESSAGE_MAP()
 END_MESSAGE_MAP()
 
 
 
 
@@ -195,7 +199,15 @@ void CTCLToolsDlg::OnPaint()
 	}
 	}
 	else
 	else
 	{
 	{
+#if 1
 		CDialog::OnPaint();
 		CDialog::OnPaint();
+#else
+		//设置为绿色背景
+		CRect   rect; 
+		CPaintDC   dc(this); 
+		GetClientRect(rect); 
+		dc.FillSolidRect(rect,g_clrEyeGreen);
+#endif
 	}
 	}
 }
 }
 
 
@@ -627,3 +639,44 @@ void CTCLToolsDlg::OnBnClickedCheckUsefile()
 	GetDlgItem(IDC_CHECK_HB)->ShowWindow(bCheck ? SW_SHOW : SW_HIDE);
 	GetDlgItem(IDC_CHECK_HB)->ShowWindow(bCheck ? SW_SHOW : SW_HIDE);
 	GetDlgItem(IDC_CHECK_BH)->ShowWindow(bCheck ? SW_SHOW : SW_HIDE);
 	GetDlgItem(IDC_CHECK_BH)->ShowWindow(bCheck ? SW_SHOW : SW_HIDE);
 }
 }
+
+HBRUSH CTCLToolsDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
+{
+	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
+
+	switch ( nCtlColor )
+	{
+	case CTLCOLOR_BTN:
+	case CTLCOLOR_STATIC:
+	case CTLCOLOR_DLG:
+	case CTLCOLOR_LISTBOX:
+		{
+			//设置背景为透明
+			pDC->SetBkMode(TRANSPARENT);
+			//创建画刷
+			HBRUSH B = CreateSolidBrush(g_clrEyeGreen);
+			return (HBRUSH) B; //返回画刷句柄
+		}
+		break;
+	}
+
+	return hbr;
+}
+
+void CTCLToolsDlg::OnBnClickedStr2hex()
+{
+	CString strText;
+	GetDlgItemText(IDC_EDIT_STRING, strText);
+	// 将字符串转成十六进制字符串;
+	SetDlgItemText(IDC_EDIT_HEXSTRING, utils::BytesToHexString((byte*)strText.GetString(), strText.GetLength(), ' ').c_str());
+	//SetDlgItemText(IDC_EDIT_HEX, utils::BytesToHexString((byte*)cmdpara._rtnContext.c_str(), cmdpara._rtnContext.size(), ' ').c_str());
+}
+
+void CTCLToolsDlg::OnBnClickedHex2str()
+{
+	CString strText;
+	GetDlgItemText(IDC_EDIT_HEXSTRING, strText);
+	strText.Remove(' ');
+	// 将十六进制字符串转字符串;
+	SetDlgItemText(IDC_EDIT_STRING, utils::HexStringToBytes(strText.GetString(), 2).c_str());
+}

+ 3 - 0
TCLTools/TCLTools/TCLToolsDlg.h

@@ -60,4 +60,7 @@ public:
 	// Ö´ÐÐÃüÁî;
 	// Ö´ÐÐÃüÁî;
 	void ExecuteCommand(CString strCMDName);
 	void ExecuteCommand(CString strCMDName);
 	afx_msg void OnBnClickedCheckUsefile();
 	afx_msg void OnBnClickedCheckUsefile();
+	afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
+	afx_msg void OnBnClickedStr2hex();
+	afx_msg void OnBnClickedHex2str();
 };
 };

BIN
TCLTools/TCLTools/res/TCLTools.ico


+ 6 - 1
TCLTools/TCLTools/resource.h

@@ -34,6 +34,11 @@
 #define BTN_EXEC_CMD4                   1022
 #define BTN_EXEC_CMD4                   1022
 #define IDC_CHECK1                      1023
 #define IDC_CHECK1                      1023
 #define IDC_CHECK_USEFILE               1023
 #define IDC_CHECK_USEFILE               1023
+#define IDC_EDIT_HEXSTRING              1024
+#define IDC_EDIT_STRING                 1025
+#define BTN_STR2HEX                     1026
+#define IDC_BUTTON2                     1027
+#define BTN_HEX2STR                     1027
 
 
 // Next default values for new objects
 // Next default values for new objects
 // 
 // 
@@ -41,7 +46,7 @@
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_NEXT_RESOURCE_VALUE        132
 #define _APS_NEXT_RESOURCE_VALUE        132
 #define _APS_NEXT_COMMAND_VALUE         32771
 #define _APS_NEXT_COMMAND_VALUE         32771
-#define _APS_NEXT_CONTROL_VALUE         1024
+#define _APS_NEXT_CONTROL_VALUE         1027
 #define _APS_NEXT_SYMED_VALUE           101
 #define _APS_NEXT_SYMED_VALUE           101
 #endif
 #endif
 #endif
 #endif