MFC中,怎样实现编辑框中内容的分别以ascll和对应十六进制两种不同方式显示?详见补充
MFC中,编辑框CStringstr="t";ascll码"116",对应十六进制0x74,要求:添加一个复选框,选中状态下,编辑框显示“t”;缺省状态下显示“74”,请...
MFC中, 编辑框CString str="t"; ascll码"116",对应十六进制0x74, 要求:添加一个复选框,选中状态下,编辑框显示“t”;缺省状态下显示“74”,请问怎样实现,给出完整的代码。谢谢
谢谢你的回答,问题解决了,可用以下代码实现
int a;
unsigned char b;
UpdateData(true);
if(m_Check.GetCheck())
{
a = _tcstoul(m_strData4a, NULL, 16);
str.Format("%c",a);
}
else
{
memcpy(&b,str.GetBuffer(1),sizeof(b));
str.ReleaseBuffer();
str.Format("%02X",b);
}
UpdateData(false); 展开
谢谢你的回答,问题解决了,可用以下代码实现
int a;
unsigned char b;
UpdateData(true);
if(m_Check.GetCheck())
{
a = _tcstoul(m_strData4a, NULL, 16);
str.Format("%c",a);
}
else
{
memcpy(&b,str.GetBuffer(1),sizeof(b));
str.ReleaseBuffer();
str.Format("%02X",b);
}
UpdateData(false); 展开
1个回答
展开全部
要写一个 ascii -> 十六进制转换的函数。
char * ascii_to_hex(char * des, int len, const char * src)
{
int n = 0, i = 0;
unsigned char c;
while( n < len-3 && src[i] != '\0')
{
c = src[i];
int h = c >> 4;
int l = c & 0x0F;
if ( h > 9) h+=7;
if (l > 9) l+=7;
des[n++] = h | 0x30;
des[n++] = l | 0x30;
des[n++] = ' ';
}
return des;
}
char * ascii_to_hex(char * des, int len, const char * src)
{
int n = 0, i = 0;
unsigned char c;
while( n < len-3 && src[i] != '\0')
{
c = src[i];
int h = c >> 4;
int l = c & 0x0F;
if ( h > 9) h+=7;
if (l > 9) l+=7;
des[n++] = h | 0x30;
des[n++] = l | 0x30;
des[n++] = ' ';
}
return des;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询