【发布时间】:2013-02-02 02:37:47
【问题描述】:
如何从 C 语言中的 windows API 设计中的文本框中检索输入的整数值,以将它们转换为字符串,然后通过 C 中的静态标签以十六进制数字显示这些值。
代码:
GetWindowText(hwndtext1, hexval, 256);
for (i = sizeof(hexval); i >= 0; i--)
{
buf[i] = atoll(hexval);
ulltoa(buf[i], szBuffer, 16);
SetWindowText(hwndStatic3, szBuffer);
}
--------编辑------ 我希望能够根据十进制输入显示十六进制数字。因此,在我用 c 开发的 GUI 上,我可以在文本框中写入十进制数字,并且我想在单独的文本框中显示十进制的十六进制值。
-------------编辑------
我已经稍微修正了代码,现在只显示十六进制数的最后一个字节。
例如。如果十进制输入是 2000.... 十六进制输出仅显示 d0。 当正确的十六进制输出应该是 7d0。
【问题讨论】:
-
对不起,我不确定我明白了...您想将数字的十六进制字符串表示转换为十进制字符串表示,对吗?请编辑要清除的问题并删除误导性的 Get/SetWindowText 参考
-
你在这里混合了太多不同的方面。有文本框操作,字符串处理,从字符串转换为整数,从整数转换为十六进制字符串。你在哪个方面挣扎?尝试将问题分解为您可以做的部分和您不能做的部分。
-
@user2075927 什么是
case 1,这段代码在正确的位置吗?即,您确定按下按钮时会调用此代码吗? -
案例 1 只是我创建的 switch case 语句的一部分
-
@user2075927 是的,大多数阅读这篇文章的人之前都看过
switch声明。但是1只是一个神奇的数字en.wikipedia.org/wiki/Magic_number_(programming),这对我们其他人来说意味着没有。因此,如果它不重要,请忽略它,如果它很重要,请使用描述性名称。