wsprintf函数的空格占位符和0占位符所占的空间不一样
在窗体工程中,添加两个Edit组件(Edit1和Edit2,默认文本都是10),再添加一个命令按钮(Button1)和一个ListBox组件(ListBox1),在命令按钮响应函数中添加程序:
int a,b;
a=StrToInt(Edit1->Text);
b=StrToInt(Edit2->Text);
char aChar[100];
//wsprintf(aChar,"%10d%10d",a,b);//空格占位符
wsprintf(aChar,"%010d%010d",a,b);//0占位符
ListBox1->Items->Add(aChar);
如果使用0占位符,Edit1文本不改变,输出的内容A是00000000100000000010
将Edit1文本修改成100, 输出的内容B是00000001000000000010,注意:内容A和内容B的每一位的位置是上下对齐的
如果使用空格占位符,Edit1文本不改变,输出的内容A是 10 10
将Edit1文本修改成100, 输出的内容B是 100 10,注意:内容A和内容B的每一位的位置是上下是不对齐的
我感觉0占位符在ListBox组件的文本中占用的单位宽度要大于空格占位符在ListBox组件的文本中占用的单位宽度
请问:如何在使用空格占位符的情况下让上下两条文本一一对齐 ListBox组件 wsprintf函数 空格占位宽度
[解决办法]
你把 ListBox 的字体设成等宽字体就行了,比如宋体。