Contents
Introduction
CPPDumpCtrl
is a Dump Control based on MFC and the CWnd class. It implements basic behavior to edit/view Data in HEX, DEC, BIN, OCT and/or ASCII view.
How to integrate CPPDumpCtrl in your application
To use the PPDumpCtrl
control in your project you will need to add a number of files to your project:
- PPDumpCtrl.h
- PPDumpCtrl.cpp
- PPNumEdit.h
- PPNumEdit.cpp
- memdc.h // Keith Rule's memory DC helper class.
Where PPDumpCtrl.* is a main CPPDumpCtrl
control source and header files, and PPNumEdit.* is a CPPNumEdit
control files (class for in-place editing).
Create a CPPDumpCtrl object
Include file PPDumpCtrl.h in the header file where will be use the CPPDumpCtrl
control
In your application, create a member variable for the control. Please note that this variable is a pointer:
CPPDumpCtrl* m_hex_ctrl;
Now create the control. For dialog-based applications, in your OnInitDialog:
CDialog::OnInitDialog();
m_hex_ctrl = new CPPDumpCtrl;
m_hex_ctrl->Create(CRect(0, 0, 100, 100), this, 100);
Remember to destroy the control or you will get a memory leak. This can be done, for example, in your class destructor:
if (m_hex_ctrl)
delete m_hex_ctrl;
Initialize CPPDumpCtrl object
For initialize CPPDumpCtrol in your OnInitDialog
add following lines:
m_dump_ctrl.SetPointerData(256, nNewData, nOldData, FALSE);
Also you can set styles, fonts and colors here
Class Members
Construction |
|
CPPDumpCtrl |
Constructs a CPPDumpCtrl object. |
Create |
Constructs a CPPDumpCtrl object. |
Initialization |
|
SetPointerData |
Sets the pointers to data arrays and sets the length of data arrays |
SetOffsetViewAddress |
Sets offset for viewing address |
Appearance |
|
SetDefaultStyles |
Sets the styles in default value |
SetStyles |
Sets the styles |
ModifyStyles |
Changes the style of a control |
GetStyles |
Retrieves information about the control styles |
SetReadOnly |
Sets data for read only |
IsReadOnly |
Checks may be data changed or not |
SetSpecialCharView |
Sets the character which will drawn instead special characters (code: 0 - 31) |
Color Functions |
|
SetDefaultColors |
Sets the control colors to the default colors. |
SetColor |
Specifies the color to use for the control. |
GetColor |
Retrieves the color for the control. |
Notification |
|
SetNotify |
Enable notification about changing the data or the view. |
GetNotify |
Is enabled notification about changing the data or the view.. |
Font Functions |
|
SetDefaultFont |
Sets the control font to the default value (Courier, 8pt.). |
SetFont |
Specifies the font for the control. |
Miscellaneous Functions |
|
SetBeginAddress |
Sets first visible address in the control |
GetBeginAddress |
Gets current visible address from the control |
SetTrackMouseMove |
This function enables or disables the track mouse. |
IsTrackMouseMove |
This function returns whether the track mouse is enabled |
Selection Functions |
|
SetSelectRange |
Sets the range of the selected block |
GetSelectRange |
Gets the range of the selected block. |
IsAddressSelected |
Whether checks there is a specified address in the range of the selection |
EnableSelect |
Enable to select data range |
IsEnableSelect |
Checks may be data selected or not |
Menu Functions |
|
SetMenu |
Associates a menu to the control. |
ToolTip Functions |
|
SetTooltipText |
This function sets the format string of the text to show in the control tooltip. |
ActivateTooltip |
This function enables or disables the button tooltip |
GetTooltip |
This function gets pointer to the tooltip object |
CPPDumpCtrl::CPPDumpCtrl
PPDumpCtrl ();
Remarks
Constructs a CPPDumpCtrl object. The control styles, font and colors is initially set to default values (see SetDefaultStyles, SetDefaultFont and SetDefaultColors).
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::Create
BOOL Create(const RECT& rect, CWnd* pParentWnd, UINT nID, DWORD dwStyle = WS_CHILD | WS_BORDER | WS_TABSTOP | WS_VISIBLE);
Parameters
rect
- The size and position of the window, in client coordinates of pParentWnd.
pParentWnd
- The parent window.
nID
- The ID of the child window.
dwStyle
- Specifies the window style attributes.
Return Value
Nonzero if successful; otherwise 0.
Remarks
Creates and initializes the child window associated with the CPPDumpCtrl
object.
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::SetPointerData
void SetPointerData (DWORD nLength, LPBYTE pNewData, LPBYTE pOldData , BOOL bRedraw )
Parameters
nLength
- Length of data arrays
pNewData
- The pointer to the array with new data.
pOldData
- The pointer to the array with old data. If pOldData is NULL then the pointer to the array with old data will be same as the pointer to new data array.
bRedraw
- Specifies whether the control is to be redrawn. A nonzero value redraws the control. A 0 value does not redraw the control. The control is redrawn by default.
Remarks
Sets the pointers to data arrays and sets the length of data arrays.
Example:
BYTE nNewData [1000];
BYTE nOldData [1000];
...
m_dump_ctrl.SetPointerData(1000, nNewData, nOldData);
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::SetOffsetViewAddress
void SetOffsetViewAddress (DWORD nAddress , BOOL bRedraw )
Parameters
nAddress
- The offset value for viewing address. For example, viewing address on screen start with 0 always. But if you have specified the offset address then viewing address will be start from it value.
bRedraw
- Specifies whether the control is to be redrawn. A nonzero value redraws the control. A 0 value does not redraw the control. The control is redrawn by default.
Remarks
Sets offset for viewing address
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::SetDefaultStyles
void SetDefaultStyles (BOOL bRedraw )
Parameters
bRedraw
- Specifies whether the control is to be redrawn. A nonzero value redraws the control. A 0 value does not redraw the control. The control is redrawn by default.
Remarks
Sets all styles to a default value. The function set following styles to control:
PPDUMP_FIELD_ADDRESS
PPDUMP_FIELD_HEX
PPDUMP_FIELD_ASCII
PPDUMP_BAR_ADDRESS
PPDUMP_BAR_DEC
PPDUMP_BAR_HEX
PPDUMP_BAR_BIN
PPDUMP_BAR_ASCII
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::SetStyles
void SetStyles (DWORD nStyle, BOOL bRedraw )
Parameters
nStyle
- The new styles of the control.
bRedraw
- Specifies whether the control is to be redrawn. A nonzero value redraws the control. A 0 value does not redraw the control. The control is redrawn by default.
Remarks
The function set the new styles for control
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::ModifyStyles
void ModifyStyles (DWORD nAddStyle, DWORD nRemoveStyle, BOOL bRedraw )
Parameters
nAddStyle
- Added styles.
nRemoveStyle
- Removed styles.
bRedraw
- Specifies whether the control is to be redrawn. A nonzero value redraws the control. A 0 value does not redraw the control. The control is redrawn by default.
Remarks
The function modifies styles of the control
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::GetStyles
DWORD GetStyles ()
Return value
The current styles of the control.
Remarks
The function returns the current styles of the control
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::SetReadOnly
void SetReadOnly(BOOL bReadOnly )
Parameters
bReadOnly
- Specifies whether to set or remove the read-only state of the control. A value of TRUE sets the state to read-only; a value of FALSE sets the state to read/write.
Remarks
This method sets the read-only state of an control.
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::IsReadOnly
BOOL IsReadOnly()
Return value
TRUE if the control is read-only.
Remarks
Call this member function to determine if the control is read-only. User can view the data, but cannot change it.
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::SetDefaultColors
void SetDefaultColors(BOOL bRedraw )
Parameters
bRedraw
- Specifies whether the control is to be redrawn. A nonzero value redraws the control. A 0 value does not redraw the control. The control is redrawn by default.
Remarks
Use this function to reset the control colors to their default values.
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::SetColor
COLORREF SetColor(int nIndex, COLORREF crColor, BOOL bRedraw )
Parameters
nIndex
- Specifies the color to be set. This is one of the color values defined in the color enumeration
crColor
- A COLORREF value specifying the color to set
bRedraw
- Specifies whether the control is to be redrawn. A nonzero value redraws the control. A 0 value does not redraw the control. The control is redrawn by default.
Return value
The function returns previous color.
Remarks
Sets the color specified the nIndex.
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::GetColor
COLORREF GetColor(int nIndex)
Parameters
nIndex
- Specifies the color to be retrieved. This is one of the color values defined in the color enumeration
Return value
A pointer to a COLORREF value to be receive the requested color value
Remarks
The function return the color for the specified by index.
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::SetNotify
void SetNotify(BOOL bNotify = TRUE)
void SetNotify(HWND hWnd)
Parameters
bNotify
- If TRUE the control will be send the notification to parent window. Else the notification will not send
hWnd
- If non-NULL the control will be send the notification to specified window. Else the notification will not send
Remarks
This function sets or removes the notification messages from the control.
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::GetNotify
BOOL GetNotify()
Return value
TRUE if the control will be notified the specified window.
Remarks
This function determines will be send the notification messages from the control or not.
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::SetDefaultFont
void SetDefaultFont(BOOL bRedraw )
Parameters
bRedraw
- Specifies whether the control is to be redrawn. A nonzero value redraws the control. A 0 value does not redraw the control. The control is redrawn by default.
Remarks
Sets the font to the default value (Courier, 8pt)
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::SetFont
BOOL SetFont(CFont & font, BOOL bRedraw )
BOOL SetFont(LOGFONT & lf, BOOL bRedraw )
BOOL SetFont(LPCTSTR lpszFaceName, int nSizePoints , BOOL bUnderline , BOOL bBold ,
BOOL bStrikeOut , BOOL bItalic ,
BOOL bRedraw )
Parameters
font
- A CFont object allowing full control over the appearance of the font.
lf
- A LOGFONT structure allowing full control over the appearance of the font also.
lpszFaceName
- The font face name.
nSizePoints
- The font size in points. The default value is 8.
bUnderline
- Specifies whether the font is to be underlined. A nonzero value sets the font to be underlined. A 0 value sets the font not to be underlined. The font is not underlined by default.
bBold
- Specifies whether the font weight is to be bold or not. A nonzero value sets the font to be bold. A 0 value sets the font weight to be normal. The font weight is normal by default.
bStrikeOut
- Specifies whether the font is to be struck out or not. A nonzero value sets the font to be struck out. A 0 value sets the font not to be struck out. The font is not struck out by default.
bItalic
- Specifies whether the font style is to be italic or not. A nonzero value sets the font style to be italic. A 0 value sets the font style to be normal. The font style is normal by default.
bRedraw
- Specifies whether the control is to be redrawn. A nonzero value redraws the control. A 0 value does not redraw the control. The control is redrawn by default.
Remarks
Sets the font for all elements of the control
Attention! You must set the font with fixed width (for example: Courier)
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::SetBeginAddress
void SetBeginAddress(int nAddress = 0, BOOL bRedraw = TRUE)
Parameters
nAddress
- The address which will be the first address on the screen.
bRedraw
- Specifies whether the control is to be redrawn. A nonzero value redraws the control. A 0 value does not redraw the control. The control is redrawn by default.
Remarks
Sets the first visible address on the screen
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::GetBeginAddress
int GetBeginAddress()
Return value
The function retrives the first visible address on the screen.
Remarks
Gets the first visible address on the screen
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::SetTrackMouseMove
void SetTrackMouseMove(BOOL bTrack = TRUE, BOOL bRedraw = TRUE)
Parameters
bTrack
- If TRUE the track mouse will enable.
bRedraw
- Specifies whether the control is to be redrawn. A nonzero value redraws the control. A 0 value does not redraw the control. The control is redrawn by default.
Remarks
This function enables or disables the track mouse.
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::IsTrackMouseMove
int IsTrackMouseMove()
Return value
Function returns TRUE if track mouse is enabled.
Remarks
This function returns whether the track mouse is enabled.
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::SetSelectRange
void SetSelectRange (int nBegin = 0, int nEnd = -1, BOOL bVisible = TRUE)
Parameters
nBegin
- The address which will be the first selected address.
nEnd
- The address which will be the end selected address. If nEnd
is -1 then the end selected address will be equal with begin selected address.
bVisible
- Specifies whether the control is to be redrawn so that first address has been seen. A nonzero value redraws the control. A 0 value does not redraw the control. The control is redrawn by default.
Remarks
Sets the range of the selected block.
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::GetSelectRange
void GetSelectRange (LPINT nBegin, LPINT nEnd)
Return values
nBegin
- The address which will be the first selected address.
nEnd
- The address which will be the end selected address.
Remarks
Gets the range of the selected block.
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::IsAddressSelected
BOOL IsAddressSelected (int nAddress)
Parameters
nAddress
- The address which will be tested.
Return value
The function returns TRUE if nAddress
into the range of selected block. Else FALSE
Remarks
Whether checks there is a specified address in the range of the selection
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::EnableSelect
void EnableSelect(BOOL bEnable )
Parameters
bEnable
- If TRUE then user can select the block of the data.
Remarks
Calls the function for enable select the data or disable it.
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::IsEnableSelect
BOOL IsEnableSelect()
Return value
TRUE if user can select the block of the data.
Remarks
Determines can user select the data or not.
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::SetSpecialCharView
void SetSpecialCharView(TCHAR chSymbol = NULL, BOOL bRedraw = TRUE)
Parameters
chSymbol
- the character which will draw instead the special characters (0 - 31). If NULL the symbol will not changed.
bRedraw
- Specifies whether the control is to be redrawn. A nonzero value redraws the control. A 0 value does not redraw the control. The control is redrawn by default..
Remarks
Sets the character which will drawn instead special characters (0 - 31).
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::SetMenu
BOOL SetMenu(UINT nMenu, BOOL bRedraw = TRUE)
Parameters
nMenu
- ID number of the menu resource. Pass NULL to remove any menu from the control.
bRedraw
- Specifies whether the control is to be redrawn. A nonzero value redraws the control. A 0 value does not redraw the control. The control is redrawn by default.
Remarks
This function associates a menu to the control. The menu will be displayed clicking the data in the control.
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::SetTooltipText
void SetTooltipText(int nText, BOOL bActivate)
void SetTooltipText(CString sFormatTip, BOOL bActivate)
Parameters
nText
- ID number of the string resource containing the format string of the text to show.
sFormatTip
- Pointer to a null-terminated string containing the format string of the text to show.
bActivate
- If TRUE the tooltip will be created active.
Remarks
This function sets the format string of the text to show in the control tooltip.
Format string
The Format string can contain the any text, and also special symbols of substitution of the data.
Special symbols must be the following format:
<code>% [direction
] [length
] [type
]
direction
- specifies the order of an arrangement the multi bytes data
- blank - the order corresponds specified in style of the control (
PPDUMP_DATA_LOW_HIGH
)
- '+' - the order from the high byte to the low byte
- '-' - the order from the low byte to the high byte
length
- specified how much byte in the alone data (0 - 4) or blank. Where 0 or blank then use default length specified in style (PPDUMP_WORD_DATA
= 2 byte or ~PPDUMP_WORD_DATA
= 1 byte).
type
- specified the type of the format:
- 'R' - hex address
- 'H' - hex data
- 'D' - dec data
- 'B' - bin data
- 'O' - oct data
- 'A' - ascii data
- 'n' - carriage return + line feed (equivalently "\r\n")
- 't' - tabulation. The tooltip doesn't support tab symbol. Therefore tab have the program emulation (4 characters). This feature well works with the established font for tooltip with identical width of symbols.
Example:
CString str = _T("Address : %RH Hex : %2H");
m_hex_ctrl.SetTooltipText(str);
The result on the client area of the control:
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::ActivateTooltip
void ActivateTooltip(BOOL bActivate = TRUE)
Parameters
bActivate
- If TRUE the tooltip will be activated.
Remarks
This function enables or disables the control tooltip..
CPPDumpCtrl Overview | Class Members | Styles
CPPDumpCtrl::GetTooltip()
CToolTipCtrl * GetTooltip()
Return value
The pointer to the tooltip object.
Remarks
This function gets pointer to the tooltip object
CPPDumpCtrl Overview | Class Members | Styles
Styles and Color Index
The Control's styles:
Fields of the data |
|
PPDUMP_FIELD_ADDRESS |
The address field of data is exist |
PPDUMP_FIELD_HEX |
The hex field of data is exist |
PPDUMP_FIELD_DEC |
The dec field of data is exist |
PPDUMP_FIELD_BIN |
The bin field of data is exist |
PPDUMP_FIELD_OCT |
The oct field of data is exist |
PPDUMP_FIELD_ASCII |
The ascii field of data is exist |
PPDUMP_FIELD_ALL |
All fields of data is exist |
Fields of the control bar |
|
PPDUMP_BAR_ADDRESS |
The address field of control bar is exist |
PPDUMP_BAR_HEX |
The hex field of control bar is exist |
PPDUMP_BAR_DEC |
The dec field of control bar is exist |
PPDUMP_BAR_BIN |
The bin field of control bar is exist |
PPDUMP_BAR_OCT |
The oct field of control bar is exist |
PPDUMP_BAR_ASCII |
The ascii field of control bar is exist |
PPDUMP_BAR_ALL |
All fields of control bar is exist |
Miscellaneous |
|
PPDUMP_SEPARATOR_LINES |
Draws the separators between the fileds of data |
PPDUMP_READ_ONLY |
The control for read only (The address field can be change all the same) |
PPDUMP_WORD_DATA |
Work with word data, else with byte |
PPDUMP_NAMED_FIELDS |
Draws the headers of the data fileds |
PPDUMP_SELECT_DATA |
User can select the range of the data |
PPDUMP_DATA_LOW_HIGH |
User can select the order of the multi-byte data . If it flag is set then first byte is a low byte, else high byte |
PPDUMP_TRACK_MOUSE_MOVE |
User can select the order of the multi-byte data . If it flag is set then first byte is a low byte, else high byte |
Color Enumeration :
for data |
|
PPDUMP_COLOR_DATA_FG |
The foreground color of the equal data in nNewArray and nOldArray |
PPDUMP_COLOR_DATA_CHANGE_FG |
The foreground color of the different data in nNewArray and nOldArray |
PPDUMP_COLOR_DATA_BK |
The background color of the data |
for in-place edit |
|
PPDUMP_COLOR_EDIT_FG |
The foreground color of the editing data without error |
PPDUMP_COLOR_EDIT_BK |
The background color of the editing data without error |
PPDUMP_COLOR_EDIT_ERR_FG |
The foreground color of the editing data with error |
PPDUMP_COLOR_EDIT_ERR_BK |
The background color of the editing data with error |
miscellaneous |
|
PPDUMP_COLOR_ADDRESS_FG |
The foreground color of the address field |
PPDUMP_COLOR_CARET_BK |
The background color of the data under the caret |
PPDUMP_COLOR_TEXT_HEADER |
The foreground color of the header |
PPDUMP_COLOR_SEPARATORS |
The color of the separator lines |
PPDUMP_COLOR_MOUSE_TRACK |
The color of track rectangle mouse |
Messages
The control has the three messages. First two transfer the following structure as parameter:
typedef struct tagNM_PPDUMP_CTRL {
NMHDR hdr;
int iAddress;
UINT iValue;
} NM_PPDUMP_CTRL;
UDM_PPDUMPCTRL_BEGIN_ADDR - User has changed first address on the screen. New address was passed as parameter iAddress
. The iValue
member has no value.
UDM_PPDUMPCTRL_CHANGE_DATA - Sends to parent window when user tries to change value at any address. The address passes as parameter iAddress
, and new value passes as parameter iValue
. The control doesn't change data directly. It just notifies the parent on necessity of change. The parent should change data and redraw control itself.
Here example:
Add to the header file.
afx_msg void NotifyEditData(NMHDR * pNMHDR, LRESULT * result);
To the implement file.
ON_NOTIFY (UDM_PPDUMPCTRL_CHANGE_DATA, IDC_EDIT1, NotifyEditData)
and
void CParentDlg::NotifyEditData(NMHDR * pNMHDR, LRESULT * result)
{
*result = 0;
NM_PPDUMP_CTRL * pNotify = (NM_PPDUMP_CTRL*)pNMHDR
SetNewValueData(pNotify->iAddress, pNotify->iValue);
m_dump_ctrl.RedrawWindow();
}
Third message UDM_PPDUMPCTRL_MENU_CALLBACK sends to window when the user tries to display the menu. This message transfer the following structure as parameter:
typedef struct tagNM_PPDUMP_MENU {
NMHDR hdr;
HMENU nMenu;
int iArea;
int iAddress;
} NM_PPDUMP_MENU;
Fourth message UDM_PPDUMPCTRL_SELECTION sends to window when the user finished selecting of the data. It isn't sends else selection is disabled or selection equal to alone data. This message transfer the following structure as parameter:
typedef struct tagNM_PPDUMP_SEL {
NMHDR hdr;
int iFirstAddr;
int iLastAddr;
} NM_PPDUMP_SEL;
Hotkeys
This control has following hotkeys
In view mode (without editing data)
Hotkey |
Description |
|
|
Moving of the caret |
|
LEFT |
The caret moves on one address backward |
RIGHT |
The caret moves on one address forward |
UP |
The caret moves on one line up |
DOWN |
The caret moves on one line down |
HOME |
The caret moves to the beginning of a line |
END |
The caret moves to the end of a line |
CTRL+HOME |
The caret moves to first address |
CTRL+END |
The caret moves to end address |
PAGE UP |
The caret moves on one screen up |
PAGE DOWN |
The caret moves on one screen down |
|
|
The beginning of editing ... |
|
CTRL+H |
as HEX, if the field is exist in the control bar and not set PPDUMP_READ_ONLY style |
CTRL+D |
as DEC, if the field is exist in the control bar and not set PPDUMP_READ_ONLY style |
CTRL+B |
as BIN, if the field is exist in the control bar and not set PPDUMP_READ_ONLY style |
CTRL+O |
as OCT, if the field is exist in the control bar and not set PPDUMP_READ_ONLY style |
CTRL+A |
as ASCII, if the field is exist in the control bar and not set PPDUMP_READ_ONLY style |
ENTER |
in first field of the data |
In editing mode
Hotkey |
Description |
|
|
Moving of the caret |
|
CTRL+LEFT |
The edit moves on one address backward |
CTRL+RIGHT |
The edit moves on one address forward |
CTRL+UP |
The edit moves on one line up |
CTRL+DOWN |
The edit moves on one line down |
CTRL+HOME |
The edit moves to the beginning of a line |
CTRL+END |
The edit moves to the end of a line |
PAGE UP |
The edit moves on one screen up |
PAGE DOWN |
The edit moves on one screen down |
|
|
Continuation of editing ... |
|
CTRL+H |
as HEX, if the field is exist in the control bar and not set PPDUMP_READ_ONLY style |
CTRL+D |
as DEC, if the field is exist in the control bar and not set PPDUMP_READ_ONLY style |
CTRL+B |
as BIN, if the field is exist in the control bar and not set PPDUMP_READ_ONLY style |
CTRL+O |
as OCT, if the field is exist in the control bar and not set PPDUMP_READ_ONLY style |
CTRL+A |
as ASCII, if the field is exist in the control bar and not set PPDUMP_READ_ONLY style |
TAB |
to the next field |
SHIFT+TAB |
to the previous field |
|
|
End of editing |
|
ENTER |
OK |
ESC |
Cancel |
History
07 Aug 2002 |
First release |
13 Aug 2002 |
Release version 1.1 - Added new style PPDUMP_DATA_LOW_HIGH - Added support tootip - Added new message UDM_PPDUMPCTRL_SELECTION and structure NM_DUMP_SEL - Added support mouse wheel (Thanks to Darren Schroeder) - Fixed problem with large arrays (Thanks to Bill Morrison - Rosinante Software) - Other minor fixed
|
19 Aug 2002 |
Release version 1.2 - Added new formating chars to the format string of the tooltip text - Added function SetSpecialCharView and GetTooltip - Two functions SetTrackMouseMove, IsTrackMouseMove and new style PPDUMP_TRACK_MOUSE_MOVE - Fixed Leak memory with GetDC() - NOW the control based on CWnd instead CEdit - NOW the control can create statically and dinamically
|
Thanks to ...
- Yaroslav Petrikevich and Andrey Moiseyev for their ideas on the features of the control.
- Davide Calabro for his class
CButtonST
in which decisions of some questions have been found.
- Chris Maunder for his articles devoted subclassing of the control.
- Keith Rule for his class
CMemDC
.
- Tomasz Sowinski for his help with Tooltip.
- Many people assisting to me the answers on CodeProject's forum.
Known Problems
- If you can help me, please let me know so that I can incorporate them into the next release.
Planned Enhancements
- If you have any other suggested improvements, please let me know so that I can incorporate them into the next release.
Contacting the Author
Please send any comments or bug reports to me via
email.