⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hexeditctrl.shtml.htm

📁 一套比较全的编辑框控制教程。。。附源代码。
💻 HTM
字号:
<html>

<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta name="author" content="zafir anjum">
<title>edit controls - table of contents</title>
<meta name="description" content="source code for various windows controls">
<meta name="keywords" content="mfc source code edit controls">
</head>

<body background="../di2001.jpg"
tppabs="http://www.codeguru.com/fancyhome/back.gif" bgcolor="#ffffff">

<h3 align="center"><font color="#aoao99">hexedit control </font></h3>

<hr>
<!-- author and contact details -->

<p>this article was contributed by <a href="mailto:saurwein@uniwares.com">andreas saurwein</a>.
<!-- sample image - gif or jpg --></p>

<p><img src="hexeditctrl.gif" tppabs="http://www.codeguru.com/editctrl/hexeditctrl.gif"
width="483" height="361"> <!-- text / source code --> </p>

<p>the hexedit control is a plain hex editor wrapped in a cedit derived class called
chexedit. where ever you use a cedit class you can replace it with the chexedit class.
chexedit supports the following features: 

<ol>
  <li>addressdisplay can be short or long or turned off.</li>
  <li>hexdisplay can have any width between 1 and 256 bytes or turned off</li>
  <li>asciidisplay can have any width between 1 and 256 bytes or turned off</li>
  <li>editing in hex or ascii mode</li>
  <li>cut/copy/paste support (text and/or binary format, binary compatible with devstudio)</li>
</ol>

<p>undo is in the context menu but not implemented right now. horizontal scrolling is also
not supported right now.</p>

<h2>public methods</h2>

<table border="0" width="100%" cellspacing="0" cellpadding="2">
  <tr>
    <td width="33%" bgcolor="#808080" valign="top"><h3><font color="#ffffff">getdata</font></h3>
    </td>
    <td width="67%" colspan="2" bgcolor="#c0c0c0" valign="top"><tt>int getdata(lpbyte p, int
    len);</tt></td>
  </tr>
  <tr>
    <td width="100%" bgcolor="#d2d2d2" valign="top" colspan="3">use getdata to retrieve the
    modified data from the control.</td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#d2d2d2" valign="top"><b>parameter</b></td>
    <td width="33%" bgcolor="#d2d2d2" valign="top"><tt>lpbyte p</tt></td>
    <td width="34%" bgcolor="#d2d2d2" valign="top">pointer to the databuffer</td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#d2d2d2" valign="top"></td>
    <td width="33%" bgcolor="#d2d2d2" valign="top"><tt>int len</tt></td>
    <td width="34%" bgcolor="#d2d2d2" valign="top">length of the databuffer</td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#c0c0c0" valign="top"><strong>return value</strong></td>
    <td width="33%" bgcolor="#c0c0c0" valign="top">number of bytes copied</td>
    <td width="34%" bgcolor="#c0c0c0" valign="top"></td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#d2d2d2" valign="top"><strong>remarks</strong></td>
    <td width="67%" bgcolor="#d2d2d2" colspan="2" valign="top">the getdata method copies the
    data to the buffer provided with the parameter p.</td>
  </tr>
</table>

<hr>

<table border="0" width="100%" cellspacing="0" cellpadding="2">
  <tr>
    <td width="33%" bgcolor="#808080" valign="top"><h3><font color="#ffffff">setdata</font></h3>
    </td>
    <td width="67%" colspan="2" bgcolor="#c0c0c0" valign="top"><tt>void setdata(lpbyte p, int
    len);</tt></td>
  </tr>
  <tr>
    <td width="100%" bgcolor="#d2d2d2" valign="top" colspan="3">use setdata to set the content
    that the control displays for editing</td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#d2d2d2" valign="top"><b>parameter</b></td>
    <td width="33%" bgcolor="#d2d2d2" valign="top"><tt>lpbyte p</tt></td>
    <td width="34%" bgcolor="#d2d2d2" valign="top">pointer to the databuffer</td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#d2d2d2" valign="top"></td>
    <td width="33%" bgcolor="#d2d2d2" valign="top"><tt>int len</tt></td>
    <td width="34%" bgcolor="#d2d2d2" valign="top">length of the databuffer</td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#c0c0c0" valign="top"><strong>return value</strong></td>
    <td width="33%" bgcolor="#c0c0c0" valign="top">none</td>
    <td width="34%" bgcolor="#c0c0c0" valign="top"></td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#d2d2d2" valign="top"><strong>remarks</strong></td>
    <td width="67%" bgcolor="#d2d2d2" colspan="2" valign="top">the setdata method copies the
    data from the buffer provided with the parameter p into a internal working copy.</td>
  </tr>
</table>

<hr>

<table border="0" width="100%" cellspacing="0" cellpadding="2">
  <tr>
    <td width="33%" bgcolor="#808080" valign="top"><h3><font color="#ffffff">getsel</font></h3>
    </td>
    <td width="67%" colspan="2" bgcolor="#c0c0c0" valign="top"><tt>csize getsel(void);</tt></td>
  </tr>
  <tr>
    <td width="100%" bgcolor="#d2d2d2" valign="top" colspan="3">use getsel to retrieve the
    range of bytes the user has selected.</td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#d2d2d2" valign="top"><b>parameter</b></td>
    <td width="33%" bgcolor="#d2d2d2" valign="top"><tt>none</tt></td>
    <td width="34%" bgcolor="#d2d2d2" valign="top"></td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#c0c0c0" valign="top"><strong>return value</strong></td>
    <td width="33%" bgcolor="#c0c0c0" valign="top"><pre>csize</pre>
    </td>
    <td width="34%" bgcolor="#c0c0c0" valign="top">where cx contains the start and cy contains
    the end of the selection.</td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#d2d2d2" valign="top"><strong>remarks</strong></td>
    <td width="67%" bgcolor="#d2d2d2" colspan="2" valign="top">if nothing is selected both cx
    and cy are -1</td>
  </tr>
</table>

<hr>

<table border="0" width="100%" cellspacing="0" cellpadding="2">
  <tr>
    <td width="33%" bgcolor="#808080" valign="top"><h3><font color="#ffffff">setsel</font></h3>
    </td>
    <td width="67%" colspan="2" bgcolor="#c0c0c0" valign="top"><tt>void setsel(int s, int e);</tt>
    </td>
  </tr>
  <tr>
    <td width="100%" bgcolor="#d2d2d2" valign="top" colspan="3">use setsel to set the
    selection.</td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#d2d2d2" valign="top"><b>parameter</b></td>
    <td width="33%" bgcolor="#d2d2d2" valign="top"><tt>int s</tt></td>
    <td width="34%" bgcolor="#d2d2d2" valign="top">start of selection</td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#d2d2d2" valign="top"></td>
    <td width="33%" bgcolor="#d2d2d2" valign="top"><tt>int e</tt></td>
    <td width="34%" bgcolor="#d2d2d2" valign="top">end of selection</td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#c0c0c0" valign="top"><strong>return value</strong></td>
    <td width="33%" bgcolor="#c0c0c0" valign="top"><pre>none</pre>
    </td>
    <td width="34%" bgcolor="#c0c0c0" valign="top"></td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#d2d2d2" valign="top"><strong>remarks</strong></td>
    <td width="67%" bgcolor="#d2d2d2" colspan="2" valign="top">to clear any selection set both
    s and e to -1</td>
  </tr>
</table>

<hr>

<table border="0" width="100%" cellspacing="0" cellpadding="2">
  <tr>
    <td width="33%" bgcolor="#808080" valign="top"><h3><font color="#ffffff">setbpr</font></h3>
    </td>
    <td width="67%" colspan="2" bgcolor="#c0c0c0" valign="top"><tt>void setbpr(int bpr);</tt> </td>
  </tr>
  <tr>
    <td width="100%" bgcolor="#d2d2d2" valign="top" colspan="3">use setbpr to set the number
    of bytes per row that will be displayed.</td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#d2d2d2" valign="top"><b>parameter</b></td>
    <td width="33%" bgcolor="#d2d2d2" valign="top"><tt>int bpr</tt></td>
    <td width="34%" bgcolor="#d2d2d2" valign="top">number of bytes to display per row</td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#c0c0c0" valign="top"><strong>return value</strong></td>
    <td width="33%" bgcolor="#c0c0c0" valign="top"><pre>none</pre>
    </td>
    <td width="34%" bgcolor="#c0c0c0" valign="top"></td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#d2d2d2" valign="top"><strong>remarks</strong></td>
    <td width="67%" bgcolor="#d2d2d2" colspan="2" valign="top">setbpr stands for
    setbytesperrow</td>
  </tr>
</table>

<hr>

<table border="0" width="100%" cellspacing="0" cellpadding="2">
  <tr>
    <td width="33%" bgcolor="#808080" valign="top"><h3><font color="#ffffff">setoptions</font></h3>
    </td>
    <td width="67%" colspan="2" bgcolor="#c0c0c0" valign="top"><tt>void setoptions(bool a,
    bool h, bool c, bool w);</tt> </td>
  </tr>
  <tr>
    <td width="100%" bgcolor="#d2d2d2" valign="top" colspan="3">used to set various options.</td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#d2d2d2" valign="top"><b>parameter</b></td>
    <td width="33%" bgcolor="#d2d2d2" valign="top"><tt>bool a</tt></td>
    <td width="34%" bgcolor="#d2d2d2" valign="top">addressdisplay on/off</td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#d2d2d2" valign="top"></td>
    <td width="33%" bgcolor="#d2d2d2" valign="top"><tt>bool h</tt></td>
    <td width="34%" bgcolor="#d2d2d2" valign="top">hexdisplay on/off</td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#d2d2d2" valign="top"></td>
    <td width="33%" bgcolor="#d2d2d2" valign="top"><tt>bool c</tt></td>
    <td width="34%" bgcolor="#d2d2d2" valign="top">asciidisplay on/off</td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#d2d2d2" valign="top"></td>
    <td width="33%" bgcolor="#d2d2d2" valign="top"><tt>bool w</tt></td>
    <td width="34%" bgcolor="#d2d2d2" valign="top">address is short (false) or long (true)</td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#c0c0c0" valign="top"><strong>return value</strong></td>
    <td width="33%" bgcolor="#c0c0c0" valign="top"><pre>none</pre>
    </td>
    <td width="34%" bgcolor="#c0c0c0" valign="top"></td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#d2d2d2" valign="top"><strong>remarks</strong></td>
    <td width="67%" bgcolor="#d2d2d2" colspan="2" valign="top"></td>
  </tr>
</table>

<p>&nbsp;</p>
<!-- demo project -->

<p><a href="hexeditctrl_demo.zip"
tppabs="http://www.codeguru.com/editctrl/hexeditctrl_demo.zip">download demo project - 32
kb</a> <!-- zipped source --> </p>

<p><a href="hexeditctrl_src.zip"
tppabs="http://www.codeguru.com/editctrl/hexeditctrl_src.zip">download source - 8 kb</a> </p>

<p>date posted: august 25, 1998 <!--comments--> </p>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -