CPPDumpCtrl - 版本 1.2






4.88/5 (29投票s)
用于以十六进制、十进制、二进制、八进制、ASCII 格式查看和编辑数据的类
目录
引言
CPPDumpCtrl
是一个基于 MFC 和 CWnd 类的 Dump 控件。它实现了以 HEX、DEC、BIN、OCT 和/或 ASCII 视图编辑/查看数据的基本行为。
如何将 CPPDumpCtrl 集成到您的应用程序中
要在您的项目中使用 PPDumpCtrl
控件,您需要向您的项目添加一些文件
- PPDumpCtrl.h
- PPDumpCtrl.cpp
- PPNumEdit.h
- PPNumEdit.cpp
- memdc.h // Keith Rule 的内存 DC 帮助类。
其中 PPDumpCtrl.* 是主 CPPDumpCtrl
控件的源文件和头文件,PPNumEdit.* 是 CPPNumEdit
控件的文件(用于就地编辑的类)。
创建 CPPDumpCtrl 对象
在将使用 CPPDumpCtrl
控件的头文件中包含文件 PPDumpCtrl.h
在您的应用程序中,为控件创建一个成员变量。请注意,此变量是指针
CPPDumpCtrl* m_hex_ctrl;
现在创建控件。对于基于对话框的应用程序,在您的 OnInitDialog 中
// Call the base-class method CDialog::OnInitDialog();
// Create the CPPDumpCtrl object m_hex_ctrl = new CPPDumpCtrl; m_hex_ctrl->Create(CRect(0, 0, 100, 100), this, 100);
请记住销毁控件,否则会出现内存泄漏。例如,这可以在您的类析构函数中完成
if (m_hex_ctrl) delete m_hex_ctrl;
初始化 CPPDumpCtrl 对象
要在您的 OnInitDialog
中初始化 CPPDumpCtrol,请添加以下行
//Attach the Data Arrays to the CPPDumpCtrl object m_dump_ctrl.SetPointerData(256, nNewData, nOldData, FALSE);
//where nNewData and nOldData is a //pointer to the arrays with data for //dumping, and 256 - length of the arrays
您还可以在此处设置样式、字体和颜色
类成员
然后,当你开始迭代 2(这是构建迭代的开始)时,你可能想要复制测试用例并将它们重新分类到迭代 2。这还允许对测试用例进行粒度跟踪,并允许你说某个测试用例在一个迭代中是准备好的,但在另一个迭代中不是。同样,如何做到这一点取决于你以及你希望如何报告。 “场景”部分提供了更多细节。 |
|
CPPDumpCtrl | 构造一个 CPPDumpCtrl 对象。 |
Create | 构造一个 CPPDumpCtrl 对象。 |
初始化 |
|
SetPointerData | 设置数据数组的指针并设置数据数组的长度 |
SetOffsetViewAddress | 设置查看地址的偏移量 |
外观 |
|
SetDefaultStyles | 将样式设置为默认值 |
SetStyles | 设置样式 |
ModifyStyles | 更改控件的样式 |
GetStyles | 检索有关控件样式的信息 |
SetReadOnly | 将数据设置为只读 |
IsReadOnly | 检查数据是否可以更改 |
SetSpecialCharView | 设置将替换特殊字符(代码:0 - 31)的字符 |
颜色函数 |
|
SetDefaultColors | 将控件颜色设置为默认颜色。 |
SetColor | 指定控件使用的颜色。 |
GetColor | 检索控件的颜色。 |
通知 |
|
SetNotify | 启用有关数据或视图更改的通知。 |
GetNotify | 是否启用有关数据或视图更改的通知。 |
字体函数 |
|
SetDefaultFont | 将控件字体设置为默认值(Courier,8pt)。 |
SetFont | 指定控件的字体。 |
杂项函数 |
|
SetBeginAddress | 设置控件中第一个可见地址 |
GetBeginAddress | 从控件获取当前可见地址 |
SetTrackMouseMove | 此函数启用或禁用鼠标跟踪。 |
IsTrackMouseMove | 此函数返回是否启用了鼠标跟踪 |
选择函数 |
|
SetSelectRange | 设置选定块的范围 |
GetSelectRange | 获取选定块的范围。 |
IsAddressSelected | 检查指定地址是否在选定范围内 |
EnableSelect | 启用选择数据范围 |
IsEnableSelect | 检查数据是否可以被选中 |
菜单函数 |
|
SetMenu | 将菜单与控件关联。 |
工具提示函数 |
|
SetTooltipText | 此函数设置控件工具提示中显示的文本的格式字符串。 |
ActivateTooltip | 此函数启用或禁用按钮工具提示 |
GetTooltip | 此函数获取指向工具提示对象的指针 |
CPPDumpCtrl::CPPDumpCtrl
PPDumpCtrl ();
备注
构造一个 CPPDumpCtrl 对象。控件样式、字体和颜色最初设置为默认值(参见 SetDefaultStyles、SetDefaultFont 和 SetDefaultColors)。
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::Create
BOOL Create(const RECT& rect, CWnd* pParentWnd, UINT nID, DWORD dwStyle = WS_CHILD | WS_BORDER | WS_TABSTOP | WS_VISIBLE);
参数
rect
- 窗口的大小和位置,以 pParentWnd 的客户端坐标表示。pParentWnd
- 父窗口。nID
- 子窗口的 ID。dwStyle
- 指定窗口样式属性。
返回值
成功则为非零,否则为 0。
备注
创建并初始化与 CPPDumpCtrl
对象关联的子窗口。
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::SetPointerData
void SetPointerData (DWORD nLength, LPBYTE pNewData, LPBYTE pOldData /* = NULL */, BOOL bRedraw /* = TRUE */)
参数
nLength
- 数据数组的长度pNewData
- 指向新数据数组的指针。pOldData
- 指向旧数据数组的指针。如果 pOldData 为 NULL,则指向旧数据数组的指针将与指向新数据数组的指针相同。bRedraw
- 指定是否重绘控件。非零值重绘控件。0 值不重绘控件。控件默认重绘。
备注
设置数据数组的指针并设置数据数组的长度。
示例
BYTE nNewData [1000]; BYTE nOldData [1000]; //Filling the arrays ... m_dump_ctrl.SetPointerData(1000, nNewData, nOldData);
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::SetOffsetViewAddress
void SetOffsetViewAddress (DWORD nAddress /* = 0 */, BOOL bRedraw /* = TRUE */)
参数
nAddress
- 查看地址的偏移值。例如,屏幕上的查看地址始终从 0 开始。但如果您指定了偏移地址,则查看地址将从其值开始。bRedraw
- 指定是否重绘控件。非零值重绘控件。0 值不重绘控件。控件默认重绘。
备注
设置查看地址的偏移量
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::SetDefaultStyles
void SetDefaultStyles (BOOL bRedraw /* = TRUE */)
参数
bRedraw
- 指定是否重绘控件。非零值重绘控件。0 值不重绘控件。控件默认重绘。
备注
将所有样式设置为默认值。该函数将以下 样式 设置到控件
PPDUMP_FIELD_ADDRESSPPDUMP_FIELD_HEX
PPDUMP_FIELD_ASCII
PPDUMP_BAR_ADDRESS
PPDUMP_BAR_DEC
PPDUMP_BAR_HEX
PPDUMP_BAR_BIN
PPDUMP_BAR_ASCII
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::SetStyles
void SetStyles (DWORD nStyle, BOOL bRedraw /* = TRUE */)
参数
nStyle
- 控件的新 样式。bRedraw
- 指定是否重绘控件。非零值重绘控件。0 值不重绘控件。控件默认重绘。
备注
该函数为控件设置新样式
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::ModifyStyles
void ModifyStyles (DWORD nAddStyle, DWORD nRemoveStyle, BOOL bRedraw /* = TRUE */)
参数
备注
该函数修改控件的样式
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::GetStyles
DWORD GetStyles ()
返回值
控件的当前样式。
备注
该函数返回控件的当前 样式
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::SetReadOnly
void SetReadOnly(BOOL bReadOnly /* = TRUE */)
参数
bReadOnly
- 指定是设置还是移除控件的只读状态。TRUE 值将状态设置为只读;FALSE 值将状态设置为读/写。
备注
此方法设置控件的只读状态。
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::IsReadOnly
BOOL IsReadOnly()
返回值
如果控件是只读的,则为 TRUE。
备注
调用此成员函数以确定控件是否为只读。用户可以查看数据,但不能更改它。
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::SetDefaultColors
void SetDefaultColors(BOOL bRedraw /* = TRUE */)
参数
bRedraw
- 指定是否重绘控件。非零值重绘控件。0 值不重绘控件。控件默认重绘。
备注
使用此函数将控件颜色重置为默认值。
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::SetColor
COLORREF SetColor(int nIndex, COLORREF crColor, BOOL bRedraw /* = TRUE */)
参数
nIndex
- 指定要设置的颜色。这是 颜色枚举 中定义的颜色值之一crColor
- 指定要设置的颜色的 COLORREF 值bRedraw
- 指定是否重绘控件。非零值重绘控件。0 值不重绘控件。控件默认重绘。
返回值
该函数返回上一个颜色。
备注
设置 nIndex 指定的颜色。
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::GetColor
COLORREF GetColor(int nIndex)
参数
nIndex
- 指定要检索的颜色。这是 颜色枚举 中定义的颜色值之一
返回值
指向 COLORREF 值的指针,用于接收请求的颜色值
备注
该函数返回由 索引 指定的颜色。
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::SetNotify
void SetNotify(BOOL bNotify = TRUE)
void SetNotify(HWND hWnd)
参数
bNotify
- 如果为 TRUE,控件将向父窗口发送通知。否则,通知将不发送hWnd
- 如果非 NULL,控件将向指定窗口发送通知。否则,通知将不发送
备注
此函数设置或移除控件的通知消息。
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::GetNotify
BOOL GetNotify()
返回值
如果控件将通知指定窗口,则为 TRUE。
备注
此函数确定是否将从控件发送通知消息。
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::SetDefaultFont
void SetDefaultFont(BOOL bRedraw /* = TRUE */)
参数
bRedraw
- 指定是否重绘控件。非零值重绘控件。0 值不重绘控件。控件默认重绘。
备注
将字体设置为默认值 (Courier, 8pt)
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::SetFont
BOOL SetFont(CFont & font, BOOL bRedraw /* = TRUE */)
BOOL SetFont(LOGFONT & lf, BOOL bRedraw /* = TRUE */)
BOOL SetFont(LPCTSTR lpszFaceName, int nSizePoints /* = 8 */, BOOL bUnderline /* = FALSE */, BOOL bBold /* = FALSE */,
BOOL bStrikeOut /* = FALSE */, BOOL bItalic /* = FALSE */,
BOOL bRedraw /* = TRUE */)
参数
font
- 一个 CFont 对象,允许完全控制字体的外观。lf
- 一个 LOGFONT 结构,也允许完全控制字体的外观。lpszFaceName
- 字体字样名称。nSizePoints
- 字体大小(磅)。默认值为 8。bUnderline
- 指定字体是否带下划线。非零值使字体带下划线。0 值使字体不带下划线。字体默认不带下划线。bBold
- 指定字体粗细是否为粗体。非零值使字体为粗体。0 值使字体粗细为正常。字体粗细默认正常。bStrikeOut
- 指定字体是否带有删除线。非零值使字体带有删除线。0 值使字体不带删除线。字体默认不带删除线。bItalic
- 指定字体样式是否为斜体。非零值使字体样式为斜体。0 值使字体样式为正常。字体样式默认正常。bRedraw
- 指定是否重绘控件。非零值重绘控件。0 值不重绘控件。控件默认重绘。
备注
设置控件所有元素的字体
注意! 您必须设置固定宽度的字体(例如:Courier)
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::SetBeginAddress
void SetBeginAddress(int nAddress = 0, BOOL bRedraw = TRUE)
参数
nAddress
- 将成为屏幕上第一个地址的地址。bRedraw
- 指定是否重绘控件。非零值重绘控件。0 值不重绘控件。控件默认重绘。
备注
设置屏幕上第一个可见地址
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::GetBeginAddress
int GetBeginAddress()
返回值
该函数检索屏幕上第一个可见地址。
备注
获取屏幕上第一个可见地址
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::SetTrackMouseMove
void SetTrackMouseMove(BOOL bTrack = TRUE, BOOL bRedraw = TRUE)
参数
bTrack
- 如果为 TRUE,则启用鼠标跟踪。bRedraw
- 指定是否重绘控件。非零值重绘控件。0 值不重绘控件。控件默认重绘。
备注
此函数启用或禁用鼠标跟踪。
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::IsTrackMouseMove
int IsTrackMouseMove()
返回值
如果启用了鼠标跟踪,函数返回 TRUE。
备注
此函数返回是否启用了鼠标跟踪。
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::SetSelectRange
void SetSelectRange (int nBegin = 0, int nEnd = -1, BOOL bVisible = TRUE)
参数
nBegin
- 将成为第一个选定地址的地址。nEnd
- 将成为最后一个选定地址的地址。如果nEnd
为 -1,则最后一个选定地址将与第一个选定地址相同。bVisible
- 指定是否重绘控件以使第一个地址可见。非零值重绘控件。0 值不重绘控件。控件默认重绘。
备注
设置选定块的范围。
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::GetSelectRange
void GetSelectRange (LPINT nBegin, LPINT nEnd)
返回值
nBegin
- 将成为第一个选定地址的地址。nEnd
- 将成为最后一个选定地址的地址。
备注
获取选定块的范围。
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::IsAddressSelected
BOOL IsAddressSelected (int nAddress)
参数
nAddress
- 将被测试的地址。
返回值
如果 nAddress
在选定块的范围内,则函数返回 TRUE。否则返回 FALSE
备注
检查指定地址是否在选定范围内
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::EnableSelect
void EnableSelect(BOOL bEnable /* = TRUE */)
参数
bEnable
- 如果为 TRUE,则用户可以选择数据块。
备注
调用该函数以启用或禁用数据选择。
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::IsEnableSelect
BOOL IsEnableSelect()
返回值
如果用户可以选择数据块,则为 TRUE。
备注
确定用户是否可以选择数据。
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::SetSpecialCharView
void SetSpecialCharView(TCHAR chSymbol = NULL, BOOL bRedraw = TRUE)
参数
chSymbol
- 将替换特殊字符 (0 - 31) 的字符。如果为 NULL,则符号不会更改。bRedraw
- 指定是否重绘控件。非零值重绘控件。0 值不重绘控件。控件默认重绘。
备注
设置将替换特殊字符 (0 - 31) 的字符。
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::SetMenu
BOOL SetMenu(UINT nMenu, BOOL bRedraw = TRUE)
参数
nMenu
- 菜单资源的 ID 号。传递 NULL 以从控件中移除任何菜单。bRedraw
- 指定是否重绘控件。非零值重绘控件。0 值不重绘控件。控件默认重绘。
备注
此函数将菜单与控件关联。单击控件中的数据时将显示该菜单。
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::SetTooltipText
void SetTooltipText(int nText, BOOL bActivate)
void SetTooltipText(CString sFormatTip, BOOL bActivate)
参数
nText
- 包含要显示的文本的 格式字符串 的字符串资源的 ID 号。sFormatTip
- 指向包含要显示的文本的 格式字符串 的以 null 结尾的字符串的指针。bActivate
- 如果为 TRUE,则工具提示将被创建为活动状态。
备注
此函数设置控件工具提示中显示的文本的格式字符串。
格式字符串可以包含任何文本,以及特殊的数据替换符号。
特殊符号必须采用以下格式
<code>% [direction
] [length
] [type
]
direction
- 指定多字节数据的排列顺序- 空白 - 顺序对应于控件样式中指定的顺序 (
PPDUMP_DATA_LOW_HIGH
) - '+' - 从高字节到低字节的顺序
- '-' - 从低字节到高字节的顺序
- 空白 - 顺序对应于控件样式中指定的顺序 (
length
- 指定单独数据中有多少字节 (0 - 4) 或 空白。如果为 0 或 空白,则使用样式中指定的默认长度 (PPDUMP_WORD_DATA
= 2 字节或~PPDUMP_WORD_DATA
= 1 字节)。type
- 指定格式类型- 'R' - 十六进制地址
- 'H' - 十六进制数据
- 'D' - 十进制数据
- 'B' - 二进制数据
- 'O' - 八进制数据
- 'A' - ASCII 数据
- 'n' - 回车 + 换行 (等同于 "\r\n")
- 't' - 制表符。工具提示不支持制表符。因此,制表符具有程序模拟(4 个字符)。此功能在为工具提示设置相同字符宽度的字体时效果良好。
示例
CString str = _T("Address : %RH Hex : %2H"); //Format string m_hex_ctrl.SetTooltipText(str); //Sets format string
控件客户端区域的结果
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::ActivateTooltip
void ActivateTooltip(BOOL bActivate = TRUE)
参数
bActivate
- 如果为 TRUE,则工具提示将被激活。
备注
此函数启用或禁用控件工具提示。
CPPDumpCtrl 概述 | 类成员 | 样式
CPPDumpCtrl::GetTooltip()
CToolTipCtrl * GetTooltip()
返回值
指向工具提示对象的指针。
备注
此函数获取指向工具提示对象的指针
CPPDumpCtrl 概述 | 类成员 | 样式
样式和颜色索引
控件的样式
数据字段 |
|
PPDUMP_FIELD_ADDRESS |
数据地址字段存在 |
PPDUMP_FIELD_HEX |
数据十六进制字段存在 |
PPDUMP_FIELD_DEC |
数据十进制字段存在 |
PPDUMP_FIELD_BIN |
数据二进制字段存在 |
PPDUMP_FIELD_OCT |
数据八进制字段存在 |
PPDUMP_FIELD_ASCII |
数据 ASCII 字段存在 |
PPDUMP_FIELD_ALL |
所有数据字段都存在 |
控件栏字段 |
|
PPDUMP_BAR_ADDRESS |
控件栏地址字段存在 |
PPDUMP_BAR_HEX |
控件栏十六进制字段存在 |
PPDUMP_BAR_DEC |
控件栏十进制字段存在 |
PPDUMP_BAR_BIN |
控件栏二进制字段存在 |
PPDUMP_BAR_OCT |
控件栏八进制字段存在 |
PPDUMP_BAR_ASCII |
控件栏 ASCII 字段存在 |
PPDUMP_BAR_ALL |
所有控件栏字段都存在 |
杂项 |
|
PPDUMP_SEPARATOR_LINES |
绘制数据字段之间的分隔线 |
PPDUMP_READ_ONLY |
只读控件(地址字段仍然可以更改) |
PPDUMP_WORD_DATA |
使用字数据,否则使用字节 |
PPDUMP_NAMED_FIELDS |
绘制数据字段的标题 |
PPDUMP_SELECT_DATA |
用户可以选择数据范围 |
PPDUMP_DATA_LOW_HIGH |
用户可以选择多字节数据的顺序。如果设置了此标志,则第一个字节是低字节,否则是高字节 |
PPDUMP_TRACK_MOUSE_MOVE |
用户可以选择多字节数据的顺序。如果设置了此标志,则第一个字节是低字节,否则是高字节 |
颜色枚举
对于数据 |
|
PPDUMP_COLOR_DATA_FG |
nNewArray 和 nOldArray 中相等数据的前景色 |
PPDUMP_COLOR_DATA_CHANGE_FG |
nNewArray 和 nOldArray 中不同数据的前景色 |
PPDUMP_COLOR_DATA_BK |
数据的背景色 |
用于就地编辑 |
|
PPDUMP_COLOR_EDIT_FG |
无错误的编辑数据的前景色 |
PPDUMP_COLOR_EDIT_BK |
无错误的编辑数据的背景色 |
PPDUMP_COLOR_EDIT_ERR_FG |
有错误的编辑数据的前景色 |
PPDUMP_COLOR_EDIT_ERR_BK |
有错误的编辑数据的背景色 |
杂项 |
|
PPDUMP_COLOR_ADDRESS_FG |
地址字段的前景色 |
PPDUMP_COLOR_CARET_BK |
插入符下数据的背景色 |
PPDUMP_COLOR_TEXT_HEADER |
标题的前景色 |
PPDUMP_COLOR_SEPARATORS |
分隔线的颜色 |
PPDUMP_COLOR_MOUSE_TRACK |
鼠标跟踪矩形的颜色 |
消息
控件有三个消息。前两个将以下结构作为参数传递
typedef struct tagNM_PPDUMP_CTRL { NMHDR hdr; int iAddress; //The editing or beginig address (excepting the offset address) UINT iValue; //The changed value (for UDM_PPDUMPCTRL_CHANGE_DATA message only) } NM_PPDUMP_CTRL;
UDM_PPDUMPCTRL_BEGIN_ADDR - 用户更改了屏幕上的第一个地址。新地址作为参数 iAddress
传递。iValue
成员没有值。
UDM_PPDUMPCTRL_CHANGE_DATA - 当用户尝试更改任何地址的值时发送到父窗口。地址作为参数 iAddress
传递,新值作为参数 iValue
传递。控件不直接更改数据。它只是通知父级更改的必要性。父级应自行更改数据并重绘控件。
以下示例
添加到头文件。
afx_msg void NotifyEditData(NMHDR * pNMHDR, LRESULT * result);
到实现文件。
ON_NOTIFY (UDM_PPDUMPCTRL_CHANGE_DATA, IDC_EDIT1, NotifyEditData)和
void CParentDlg::NotifyEditData(NMHDR * pNMHDR, LRESULT * result) { *result = 0; //Gets pointers to structure NM_PPDUMP_CTRL NM_PPDUMP_CTRL * pNotify = (NM_PPDUMP_CTRL*)pNMHDR //Really changing data ... SetNewValueData(pNotify->iAddress, pNotify->iValue); //Redraw the control m_dump_ctrl.RedrawWindow(); }
第三个消息 UDM_PPDUMPCTRL_MENU_CALLBACK 在用户尝试显示菜单时发送到窗口。此消息将以下结构作为参数传递
typedef struct tagNM_PPDUMP_MENU { NMHDR hdr; HMENU nMenu; //Handle to the menu int iArea; //The area of the field data under the mouse int iAddress; //The address (excepting the offset address) under the mouse } NM_PPDUMP_MENU;
第四个消息 UDM_PPDUMPCTRL_SELECTION 在用户完成数据选择时发送到窗口。如果选择被禁用或选择等于单独的数据,则不发送此消息。此消息将以下结构作为参数传递
typedef struct tagNM_PPDUMP_SEL { NMHDR hdr; int iFirstAddr; //The first address of the selection int iLastAddr; //The last address of the selection } NM_PPDUMP_SEL;
热键
此控件具有以下热键
在查看模式下(不编辑数据)
热键 | 描述 |
移动插入符 | |
左 | 插入符向后移动一个地址 |
右 | 插入符向前移动一个地址 |
上 | 插入符向上移动一行 |
下 | 插入符向下移动一行 |
HOME | 插入符移动到行的开头 |
END | 插入符移动到行的末尾 |
CTRL+HOME | 插入符移动到第一个地址 |
CTRL+END | 插入符移动到最后一个地址 |
PAGE UP | 插入符向上移动一屏 |
PAGE DOWN | 插入符向下移动一屏 |
编辑的开始... | |
CTRL+H | 作为十六进制,如果字段存在于控制栏中且未设置 PPDUMP_READ_ONLY 样式 |
CTRL+D | 作为十进制,如果字段存在于控制栏中且未设置 PPDUMP_READ_ONLY 样式 |
CTRL+B | 作为二进制,如果字段存在于控制栏中且未设置 PPDUMP_READ_ONLY 样式 |
CTRL+O | 作为八进制,如果字段存在于控制栏中且未设置 PPDUMP_READ_ONLY 样式 |
CTRL+A | 作为 ASCII,如果字段存在于控制栏中且未设置 PPDUMP_READ_ONLY 样式 |
ENTER | 在数据的第一个字段中 |
在编辑模式下
热键 | 描述 |
移动插入符 | |
CTRL+LEFT | 编辑向后移动一个地址 |
CTRL+RIGHT | 编辑向前移动一个地址 |
CTRL+UP | 编辑向上移动一行 |
CTRL+DOWN | 编辑向下移动一行 |
CTRL+HOME | 编辑移动到行的开头 |
CTRL+END | 编辑移动到行的末尾 |
PAGE UP | 编辑向上移动一屏 |
PAGE DOWN | 编辑向下移动一屏 |
继续编辑... | |
CTRL+H | 作为十六进制,如果字段存在于控制栏中且未设置 PPDUMP_READ_ONLY 样式 |
CTRL+D | 作为十进制,如果字段存在于控制栏中且未设置 PPDUMP_READ_ONLY 样式 |
CTRL+B | 作为二进制,如果字段存在于控制栏中且未设置 PPDUMP_READ_ONLY 样式 |
CTRL+O | 作为八进制,如果字段存在于控制栏中且未设置 PPDUMP_READ_ONLY 样式 |
CTRL+A | 作为 ASCII,如果字段存在于控制栏中且未设置 PPDUMP_READ_ONLY 样式 |
TAB | 到下一个字段 |
SHIFT+TAB | 到上一个字段 |
编辑结束 | |
ENTER | 好的 |
ESC | 取消 |
历史
2002年8月7日 | 首次发布 |
2002年8月13日 | 发布版本 1.1 - 添加了新样式 PPDUMP_DATA_LOW_HIGH - 添加了工具提示支持 - 添加了新消息 UDM_PPDUMPCTRL_SELECTION 和结构 NM_DUMP_SEL - 添加了鼠标滚轮支持(感谢 Darren Schroeder) - 修复了大型数组问题(感谢 Bill Morrison - Rosinante Software) - 其他小修复 |
2002年8月19日 |
发布版本 1.2 |
鸣谢...
- Yaroslav Petrikevich 和 Andrey Moiseyev 提出了控件功能的想法。
- Davide Calabro 他的类
CButtonST
中找到了一些问题的解决方案。 - Chris Maunder 他关于控件子类化的文章。
- Keith Rule 他的类
CMemDC
。 - Tomasz Sowinski 他在工具提示方面的帮助。
- 许多人在 CodeProject 论坛上帮助我回答问题。
已知问题
- 如果您能帮助我,请告诉我,以便我可以将它们纳入下一个版本。
计划增强功能
- 如果您有任何其他改进建议,请告诉我,以便我将其纳入下一个版本。