怎样能把位图以16进制形式显示在文本显示区内?

lmx7707 2002-05-16 01:38:47
急盼
...全文
130 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lmx7707 2002-05-22
  • 打赏
  • 举报
回复
我要是編得出來,就不麻煩大家了
寶典裏有例子麽?那倒要看看
jimconrad 2002-05-21
  • 打赏
  • 举报
回复
好像《vc宝典》这本书里有例子……
喂老兄,自己写好不好?勤快一点!
lmx7707 2002-05-21
  • 打赏
  • 举报
回复
可怜可怜吧
lmx7707 2002-05-20
  • 打赏
  • 举报
回复
这个问题应该不难啊,怎么没有人回答啊
分少可以加的
lmx7707 2002-05-16
  • 打赏
  • 举报
回复
能有个这样的例子就完美了
JeasonZhao 2002-05-16
  • 打赏
  • 举报
回复
给你个函数转换指针的数据到特定的格式
/**
Convert the binary data buffer to string.
Parameter:
pBuf : The buffer of data to be converted.
nLength : The length of the specified buffer.
bAddSpace: Specifies wether add space at each byte.
nLineLength :Specifies the line length of the data.
bShowRawData : Show raw data?
nBase : The base format of data,default is 16.
Return:
Converted string.
**/
string CBaseFunction::Binary2Str(BYTE * pBuf,int nLength,BOOL bAddSpace,
int nLineLength, BOOL bShowRawData,int nBase,BOOL bShowOffset)
{
if(nBase<=0)
nBase = 16;
if(nLineLength<=0)
nLineLength = nBase;
string str("");
if(bShowOffset)
str = "[0000] ";
string strRawData("");
for(int i = 0;i<nLength ;i++)
{
BYTE byte = pBuf[i];
if(i>0&&bAddSpace&&
!(nLineLength>0&&(i%nLineLength) == 0))
str +=" ";
if(nLineLength>0&&i>0&&(i%nLineLength) == 0)
{
if(bShowRawData)
{
str +=" │ "+strRawData;
strRawData = "";
}
str +="\n";
if(bShowOffset)
{
string strLineMask = Long2Str(i,nBase);
while(strLineMask.length()<4)
strLineMask = '0'+strLineMask;
str += "["+strLineMask+"] ";
}
}
strRawData +=char(byte);
str += MakeUpper(Long2Str(byte,nBase));
}
while(((i++)%nLineLength)!=0)
{
if(bAddSpace)
str+=" ";
str += " ";
}
if(strRawData.length()>0)
str = str+" │ "+strRawData;
return str;
}
makeUpper函数和Long2Str函数自己写吧,呵呵,要不太站页面了
lmx7707 2002-05-16
  • 打赏
  • 举报
回复
可是我不知道阿
vcPlayer 2002-05-16
  • 打赏
  • 举报
回复
如果你知道BMP的格式,这就很简单!
lmx7707 2002-05-16
  • 打赏
  • 举报
回复
谢谢jimconrad(jimmy)、
能详细点么?
怎么打开文件?
yxygirl 2002-05-16
  • 打赏
  • 举报
回复
CString::Format是做什么用的?
jimconrad 2002-05-16
  • 打赏
  • 举报
回复
CString::Format("%2X", i);
将十进制的i转换成两个字符宽的16进制的值。
你可以一个一个字节的读入数据,如下:
BYTE aByte;
int i;
read(&aByte, one-byte);//从文件读一个字节
i = (int)aByte;
然后再用CString::Format函数.

16,547

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧