Skip to content

Commit

Permalink
[Added] CHexEdit, CHexDlgDataInterpret classes. Data Interpreter dial…
Browse files Browse the repository at this point in the history
…og. HEXCOLORSTRUCT new clrTextDataInterpret and clrBkDataInterpret.

[Changes] Operations dialog to use CHexEdit, to be more user friendly when in dll. Reworked menu.
OnPaint on data interpreter changes. "Show data as..." menu checking reworked to be position independent (hardcoded number removed).
[Fixes] ClipboardPaste bug fixed.
  • Loading branch information
jovibor committed Dec 17, 2019
1 parent 23fb540 commit 55c068c
Show file tree
Hide file tree
Showing 41 changed files with 1,108 additions and 397 deletions.
4 changes: 3 additions & 1 deletion HexCtrl/HexCtrl.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/****************************************************************************************
* Copyright (C) 2018-2019, Jovibor: https://github.com/jovibor/ *
* Copyright © 2018-2020 Jovibor https://github.com/jovibor/ *
* This is a Hex Control for MFC/Win32 applications. *
* Official git repository: https://github.com/jovibor/HexCtrl/ *
* This software is available under the "MIT License modified with The Commons Clause". *
Expand Down Expand Up @@ -120,12 +120,14 @@ namespace HEXCTRL
COLORREF clrTextHex { GetSysColor(COLOR_WINDOWTEXT) }; //Hex chunks text color.
COLORREF clrTextAscii { GetSysColor(COLOR_WINDOWTEXT) }; //Ascii text color.
COLORREF clrTextSelected { GetSysColor(COLOR_HIGHLIGHTTEXT) }; //Selected text color.
COLORREF clrTextDataInterpret { RGB(250, 250, 250) }; //Data Interpreter text color.
COLORREF clrTextCaption { RGB(0, 0, 180) }; //Caption text color
COLORREF clrTextInfoRect { GetSysColor(COLOR_WINDOWTEXT) }; //Text color of the bottom "Info" rect.
COLORREF clrTextCursor { RGB(255, 255, 255) }; //Cursor text color.
COLORREF clrTextTooltip { GetSysColor(COLOR_INFOTEXT) }; //Tooltip text color.
COLORREF clrBk { GetSysColor(COLOR_WINDOW) }; //Background color.
COLORREF clrBkSelected { GetSysColor(COLOR_HIGHLIGHT) }; //Background color of the selected Hex/Ascii.
COLORREF clrBkDataInterpret { RGB(147, 58, 22) }; //Data Interpreter Bk color.
COLORREF clrBkInfoRect { GetSysColor(COLOR_BTNFACE) }; //Background color of the bottom "Info" rect.
COLORREF clrBkCursor { RGB(0, 0, 255) }; //Cursor background color.
COLORREF clrBkCursorSelected { RGB(0, 0, 200) }; //Cursor background color in selection.
Expand Down
4 changes: 4 additions & 0 deletions HexCtrl/HexCtrl.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -214,9 +214,11 @@
<ClInclude Include="src\Dialogs\CHexDlgAbout.h" />
<ClInclude Include="src\Dialogs\CHexDlgBookmarkProps.h" />
<ClInclude Include="src\Dialogs\CHexDlgBookmarkMgr.h" />
<ClInclude Include="src\Dialogs\CHexDlgDataInterpret.h" />
<ClInclude Include="src\Dialogs\CHexDlgFillWith.h" />
<ClInclude Include="src\Dialogs\CHexDlgOperations.h" />
<ClInclude Include="src\Dialogs\CHexDlgSearch.h" />
<ClInclude Include="src\Dialogs\CHexEdit.h" />
<ClInclude Include="src\Helper.h" />
<ClInclude Include="src\ListEx\ListEx.h" />
<ClInclude Include="src\ListEx\src\CListEx.h" />
Expand All @@ -236,9 +238,11 @@
<ClCompile Include="src\Dialogs\CHexDlgAbout.cpp" />
<ClCompile Include="src\Dialogs\CHexDlgBookmarkProps.cpp" />
<ClCompile Include="src\Dialogs\CHexDlgBookmarkMgr.cpp" />
<ClCompile Include="src\Dialogs\CHexDlgDataInterpret.cpp" />
<ClCompile Include="src\Dialogs\CHexDlgFillWith.cpp" />
<ClCompile Include="src\Dialogs\CHexDlgOperations.cpp" />
<ClCompile Include="src\Dialogs\CHexDlgSearch.cpp" />
<ClCompile Include="src\Dialogs\CHexEdit.cpp" />
<ClCompile Include="src\Helper.cpp" />
<ClCompile Include="src\ListEx\src\CListEx.cpp" />
<ClCompile Include="src\ListEx\src\CListExHdr.cpp" />
Expand Down
12 changes: 12 additions & 0 deletions HexCtrl/HexCtrl.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,12 @@
<ClInclude Include="src\CHexSelection.h">
<Filter>HexCtrl\src</Filter>
</ClInclude>
<ClInclude Include="src\Dialogs\CHexDlgDataInterpret.h">
<Filter>HexCtrl\src\Dialogs</Filter>
</ClInclude>
<ClInclude Include="src\Dialogs\CHexEdit.h">
<Filter>HexCtrl\src\Dialogs</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\HexCtrlSample\stdafx.cpp">
Expand Down Expand Up @@ -128,6 +134,12 @@
<ClCompile Include="src\CHexSelection.cpp">
<Filter>HexCtrl\src</Filter>
</ClCompile>
<ClCompile Include="src\Dialogs\CHexDlgDataInterpret.cpp">
<Filter>HexCtrl\src\Dialogs</Filter>
</ClCompile>
<ClCompile Include="src\Dialogs\CHexEdit.cpp">
<Filter>HexCtrl\src\Dialogs</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="res\HexCtrl.rc">
Expand Down
114 changes: 81 additions & 33 deletions HexCtrl/res/HexCtrl.rc
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ END

IDD_HEXCTRL_SEARCH DIALOGEX 0, 0, 351, 137
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_PALETTEWINDOW | WS_EX_LAYERED
EXSTYLE WS_EX_TOOLWINDOW | WS_EX_WINDOWEDGE | WS_EX_LAYERED
CAPTION "Search and Replace..."
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
Expand All @@ -80,17 +80,17 @@ FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "OK",IDOK,154,63,50,14
LTEXT "<--Version-->",IDC_HEXCTRL_ABOUT_STATIC_VERSION,38,10,159,8
LTEXT "Author: © Jovibor, 2018-2019.",IDC_STATIC,38,19,102,8
LTEXT "To change font size: Ctrl+MouseWheel",IDC_STATIC,38,28,144,8
LTEXT "To change grid capacity: Ctrl+Shift+MouseWheel",IDC_STATIC,38,37,166,8
LTEXT "Author: © 2018-2020 Jovibor",IDC_STATIC,38,37,96,8
CONTROL IDB_HEXCTRL_ICON,IDB_HEXCTRL_ICON,"Static",SS_BITMAP | SS_CENTERIMAGE,13,10,20,20
CONTROL "https://github.com/jovibor/HexCtrl",IDC_HEXCTRL_ABOUT_LINKGITHUB,
"MfcLink",WS_TABSTOP,38,45,111,11
"MfcLink",WS_TABSTOP,37,44,111,11
LTEXT "To change grid capacity: Ctrl+Shift+MouseWheel",IDC_STATIC,38,28,166,8
LTEXT "To change font size: Ctrl+MouseWheel",IDC_STATIC,38,19,144,8
END

IDD_HEXCTRL_OPERATIONS DIALOGEX 0, 0, 253, 195
STYLE DS_SETFONT | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_PALETTEWINDOW
EXSTYLE WS_EX_TOOLWINDOW | WS_EX_WINDOWEDGE
CAPTION "Operations..."
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
Expand All @@ -108,13 +108,13 @@ BEGIN
EDITTEXT IDC_HEXCTRL_OPERATIONS_EDIT_SHR,70,105,19,12
GROUPBOX "Arithmetic:",IDC_STATIC,124,29,111,68
CONTROL "Add",IDC_HEXCTRL_OPERATIONS_RADIO_ADD,"Button",BS_AUTORADIOBUTTON,133,40,29,10
CONTROL "Subtract",IDC_HEXCTRL_OPERATIONS_RADIO_SUBTRACT,"Button",BS_AUTORADIOBUTTON,133,53,39,10
CONTROL "Miltiply",IDC_HEXCTRL_OPERATIONS_RADIO_MULTIPLY,"Button",BS_AUTORADIOBUTTON,133,66,37,10
CONTROL "Divide",IDC_HEXCTRL_OPERATIONS_RADIO_DIVIDE,"Button",BS_AUTORADIOBUTTON,133,79,35,10
CONTROL "Subtract",IDC_HEXCTRL_OPERATIONS_RADIO_SUB,"Button",BS_AUTORADIOBUTTON,133,53,39,10
CONTROL "Miltiply",IDC_HEXCTRL_OPERATIONS_RADIO_MUL,"Button",BS_AUTORADIOBUTTON,133,66,37,10
CONTROL "Divide",IDC_HEXCTRL_OPERATIONS_RADIO_DIV,"Button",BS_AUTORADIOBUTTON,133,79,35,10
EDITTEXT IDC_HEXCTRL_OPERATIONS_EDIT_ADD,178,40,50,12,ES_AUTOHSCROLL
EDITTEXT IDC_HEXCTRL_OPERATIONS_EDIT_SUBTRACT,178,53,50,12,ES_AUTOHSCROLL
EDITTEXT IDC_HEXCTRL_OPERATIONS_EDIT_MULTIPLY,178,66,50,12,ES_AUTOHSCROLL
EDITTEXT IDC_HEXCTRL_OPERATIONS_EDIT_DIVIDE,178,79,50,12,ES_AUTOHSCROLL
EDITTEXT IDC_HEXCTRL_OPERATIONS_EDIT_SUB,178,53,50,12,ES_AUTOHSCROLL
EDITTEXT IDC_HEXCTRL_OPERATIONS_EDIT_MUL,178,66,50,12,ES_AUTOHSCROLL
EDITTEXT IDC_HEXCTRL_OPERATIONS_EDIT_DIV,178,79,50,12,ES_AUTOHSCROLL
GROUPBOX "Size within selection to modify:",IDC_STATIC,9,138,236,25
CONTROL "BYTE",IDC_HEXCTRL_OPERATIONS_RADIO_BYTE,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,20,149,28,10
CONTROL "WORD",IDC_HEXCTRL_OPERATIONS_RADIO_WORD,"Button",BS_AUTORADIOBUTTON,52,149,32,10
Expand All @@ -125,7 +125,7 @@ BEGIN
LTEXT "bits",IDC_STATIC,92,93,12,8
LTEXT "bits",IDC_STATIC,92,106,12,8
GROUPBOX "Operations:",IDC_STATIC,9,6,236,128
LTEXT "To use Hex values use 0x prefix.",IDC_STATIC,17,18,108,8
LTEXT "To use Hex values use 0x as prefix.",IDC_STATIC,17,18,117,8
END

IDD_HEXCTRL_FILLWITHDATA DIALOGEX 0, 0, 269, 96
Expand All @@ -148,7 +148,7 @@ END

IDD_HEXCTRL_BOOKMARKMGR DIALOGEX 0, 0, 365, 271
STYLE DS_SETFONT | DS_3DLOOK | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
EXSTYLE WS_EX_PALETTEWINDOW | WS_EX_LAYERED
EXSTYLE WS_EX_TOOLWINDOW | WS_EX_WINDOWEDGE | WS_EX_LAYERED
CAPTION "Bookmark Manager"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
Expand All @@ -163,21 +163,52 @@ FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "OK",IDOK,226,131,50,14
PUSHBUTTON "Cancel",IDCANCEL,279,131,50,14
EDITTEXT IDC_HEXCTRL_BOOKMARKMGR_DLGEDIT_EDIT_OFFSET,19,26,81,14,ES_AUTOHSCROLL
EDITTEXT IDC_HEXCTRL_BOOKMARKMGR_DLGEDIT_EDIT_LENGTH,107,26,81,14,ES_AUTOHSCROLL
EDITTEXT IDC_HEXCTRL_BOOKMARKPROPS_EDIT_OFFSET,19,26,81,14,ES_AUTOHSCROLL
EDITTEXT IDC_HEXCTRL_BOOKMARKPROPS_EDIT_LENGTH,107,26,81,14,ES_AUTOHSCROLL
LTEXT "Offset:",IDC_STATIC,19,18,24,8
LTEXT "Size:",IDC_STATIC,108,18,16,8
CONTROL "",IDC_HEXCTRL_BOOKMARKMGR_DLGEDIT_COLOR_BK,
"MfcColorButton",WS_TABSTOP,198,26,55,14
CONTROL "",IDC_HEXCTRL_BOOKMARKMGR_DLGEDIT_COLOR_TEXT,
"MfcColorButton",WS_TABSTOP,262,26,55,14
CONTROL "",IDC_HEXCTRL_BOOKMARKPROPS_COLOR_BK,"MfcColorButton",WS_TABSTOP,198,26,55,14
CONTROL "",IDC_HEXCTRL_BOOKMARKPROPS_COLOR_TEXT,"MfcColorButton",WS_TABSTOP,262,26,55,14
LTEXT "Bk color:",IDC_STATIC,199,18,28,8
LTEXT "Text color:",IDC_STATIC,264,18,36,8
EDITTEXT IDC_HEXCTRL_BOOKMARKMGR_DLGEDIT_EDIT_DESCR,19,50,297,64,ES_MULTILINE | ES_WANTRETURN
EDITTEXT IDC_HEXCTRL_BOOKMARKPROPS_EDIT_DESCR,19,50,297,64,ES_MULTILINE | ES_WANTRETURN
LTEXT "Description:",IDC_STATIC,20,41,39,8
GROUPBOX "Bookmark properties:",IDC_STATIC,7,6,322,120
END

IDD_HEXCTRL_DATAINTERPRET DIALOGEX 0, 0, 281, 193
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_TOOLWINDOW
CAPTION "Data Interpreter"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
EDITTEXT IDC_HEXCTRL_DATAINTERPRET_EDIT_8SIGN,50,30,25,12
EDITTEXT IDC_HEXCTRL_DATAINTERPRET_EDIT_8UNSIGN,160,30,25,12
EDITTEXT IDC_HEXCTRL_DATAINTERPRET_EDIT_16SIGN,50,43,35,12
EDITTEXT IDC_HEXCTRL_DATAINTERPRET_EDIT_16UNSIGN,160,43,35,12
EDITTEXT IDC_HEXCTRL_DATAINTERPRET_EDIT_32SIGN,50,56,51,12
EDITTEXT IDC_HEXCTRL_DATAINTERPRET_EDIT_32UNSIGN,160,56,51,12
EDITTEXT IDC_HEXCTRL_DATAINTERPRET_EDIT_64SIGN,50,69,96,12
EDITTEXT IDC_HEXCTRL_DATAINTERPRET_EDIT_64UNSIGN,160,69,96,12
LTEXT "Byte:",IDC_STATIC,32,32,18,8
LTEXT "Word:",IDC_STATIC,29,45,20,8
LTEXT "Dword:",IDC_STATIC,26,57,24,8
LTEXT "Qword:",IDC_STATIC,26,71,24,8
LTEXT "Float:",IDC_STATIC,30,108,20,8
LTEXT "Double:",IDC_STATIC,25,121,24,8
EDITTEXT IDC_HEXCTRL_DATAINTERPRET_EDIT_FLOAT,50,106,112,12
EDITTEXT IDC_HEXCTRL_DATAINTERPRET_EDIT_DOUBLE,50,119,112,12
EDITTEXT IDC_HEXCTRL_DATAINTERPRET_EDIT_TIME32,50,152,112,12
EDITTEXT IDC_HEXCTRL_DATAINTERPRET_EDIT_TIME64,50,165,112,12
LTEXT "time32_t:",IDC_STATIC,18,154,32,8
LTEXT "time64_t:",IDC_STATIC,18,167,32,8
GROUPBOX "Numbers:",IDC_STATIC,14,9,255,84
GROUPBOX "Floating numbers:",IDC_STATIC,14,96,255,42
GROUPBOX "Date/Time format is: DD/MM/YYYY hh:mm:ss",IDC_STATIC,14,141,255,46
GROUPBOX "Signed:",IDC_STATIC,21,19,129,66
GROUPBOX "Unsigned:",IDC_STATIC,155,19,107,66
END


/////////////////////////////////////////////////////////////////////////////
//
Expand Down Expand Up @@ -230,6 +261,12 @@ BEGIN
IDD_HEXCTRL_BOOKMARKPROPS, DIALOG
BEGIN
END

IDD_HEXCTRL_DATAINTERPRET, DIALOG
BEGIN
LEFTMARGIN, 7
TOPMARGIN, 7
END
END
#endif // APSTUDIO_INVOKED

Expand Down Expand Up @@ -276,7 +313,7 @@ END

IDD_HEXCTRL_BOOKMARKPROPS DLGINIT
BEGIN
IDC_HEXCTRL_BOOKMARKMGR_DLGEDIT_COLOR_BK, 0x37c, 215, 0
IDC_HEXCTRL_BOOKMARKPROPS_COLOR_BK, 0x37c, 215, 0
0x4d3c, 0x4346, 0x6f43, 0x6f6c, 0x4272, 0x7475, 0x6f74, 0x5f6e, 0x6e45,
0x6261, 0x656c, 0x744f, 0x6568, 0x4272, 0x7475, 0x6f74, 0x3e6e, 0x5254,
0x4555, 0x2f3c, 0x464d, 0x4343, 0x6c6f, 0x726f, 0x7542, 0x7474, 0x6e6f,
Expand All @@ -289,7 +326,7 @@ BEGIN
0x726f, 0x7542, 0x7474, 0x6e6f, 0x435f, 0x6c6f, 0x6d75, 0x736e, 0x6f43,
0x6e75, 0x3e74, 0x3c35, 0x4d2f, 0x4346, 0x6f43, 0x6f6c, 0x4272, 0x7475,
0x6f74, 0x5f6e, 0x6f43, 0x756c, 0x6e6d, 0x4373, 0x756f, 0x746e, "\076"
IDC_HEXCTRL_BOOKMARKMGR_DLGEDIT_COLOR_TEXT, 0x37c, 215, 0
IDC_HEXCTRL_BOOKMARKPROPS_COLOR_TEXT, 0x37c, 215, 0
0x4d3c, 0x4346, 0x6f43, 0x6f6c, 0x4272, 0x7475, 0x6f74, 0x5f6e, 0x6e45,
0x6261, 0x656c, 0x744f, 0x6568, 0x4272, 0x7475, 0x6f74, 0x3e6e, 0x5254,
0x4555, 0x2f3c, 0x464d, 0x4343, 0x6c6f, 0x726f, 0x7542, 0x7474, 0x6e6f,
Expand All @@ -315,7 +352,7 @@ IDR_HEXCTRL_MENU MENU
BEGIN
POPUP ""
BEGIN
MENUITEM "Search and Replace...\tCtrl+F/Ctrl+H", IDM_HEXCTRL_MAIN_SEARCH
MENUITEM "Search and Replace\tCtrl+F", IDM_HEXCTRL_SEARCH
MENUITEM SEPARATOR
POPUP "Show data as..."
BEGIN
Expand All @@ -324,7 +361,6 @@ BEGIN
MENUITEM "DWORD", IDM_HEXCTRL_SHOWAS_DWORD
MENUITEM "QWORD", IDM_HEXCTRL_SHOWAS_QWORD
END
MENUITEM SEPARATOR
POPUP "Bookmarks"
BEGIN
MENUITEM "Add bookmark\tCtrl+B", IDM_HEXCTRL_BOOKMARKS_ADD
Expand All @@ -337,7 +373,6 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "Bookmarks manager", IDM_HEXCTRL_BOOKMARKS_MANAGER
END
MENUITEM SEPARATOR
POPUP "Clipboard"
BEGIN
MENUITEM "Copy as Hex\tCtrl+C", IDM_HEXCTRL_CLIPBOARD_COPYHEX
Expand All @@ -353,25 +388,23 @@ BEGIN
MENUITEM "Paste as Hex\tCtrl+V", IDM_HEXCTRL_CLIPBOARD_PASTEHEX
MENUITEM "Paste as Ascii", IDM_HEXCTRL_CLIPBOARD_PASTEASCII
END
MENUITEM SEPARATOR
MENUITEM "Undo\tCtrl+Z", IDM_HEXCTRL_MAIN_UNDO
MENUITEM "Redo\tCtrl+Y", IDM_HEXCTRL_MAIN_REDO
MENUITEM SEPARATOR
POPUP "Modify"
BEGIN
MENUITEM "Operations...\tCtrl+O", IDM_HEXCTRL_MODIFY_OPERATIONS
MENUITEM "Fill with zeros", IDM_HEXCTRL_MODIFY_FILLZEROS
MENUITEM "Fill with data...", IDM_HEXCTRL_MODIFY_FILLWITHDATA
MENUITEM SEPARATOR
MENUITEM "Undo\tCtrl+Z", IDM_HEXCTRL_MODIFY_UNDO
MENUITEM "Redo\tCtrl+Y", IDM_HEXCTRL_MODIFY_REDO
END
MENUITEM SEPARATOR
POPUP "Selection"
BEGIN
MENUITEM "Mark Selection Start\tAlt+1", IDM_HEXCTRL_SELECTION_MARKSTART
MENUITEM "Mark Selection End\tAlt+2", IDM_HEXCTRL_SELECTION_MARKEND
MENUITEM SEPARATOR
MENUITEM "Select all\tCtrl+A", IDM_HEXCTRL_SELECTION_SELECTALL
END
MENUITEM SEPARATOR
MENUITEM "Data Interpreter", IDM_HEXCTRL_DATAINTERPRET
POPUP "Appearance"
BEGIN
MENUITEM "Increase font size\tCtrl+MouseWheelUp", IDM_HEXCTRL_APPEARANCE_FONTINCREASE
Expand All @@ -381,7 +414,7 @@ BEGIN
MENUITEM "Decrease capacity\tCtrl+Shift+MouseWheelDown", IDM_HEXCTRL_APPEARANCE_CAPACITYDECREASE
END
MENUITEM SEPARATOR
MENUITEM "About", IDM_HEXCTRL_MAIN_ABOUT
MENUITEM "About", IDM_HEXCTRL_ABOUT
END
END

Expand All @@ -408,6 +441,21 @@ BEGIN
0
END

IDD_HEXCTRL_DATAINTERPRET AFX_DIALOG_LAYOUT
BEGIN
0
END

IDD_HEXCTRL_SEARCH AFX_DIALOG_LAYOUT
BEGIN
0
END

IDD_HEXCTRL_ABOUT AFX_DIALOG_LAYOUT
BEGIN
0
END

#endif // English (United States) resources
/////////////////////////////////////////////////////////////////////////////

Expand Down
Loading

0 comments on commit 55c068c

Please sign in to comment.