Sub main()
    Dim i As Integer, tmp As String
    tmp = ""
    For i = 1 To 10
        tmp = tmp & Space(10 - i)  & String(i, "*")
        tmp = tmp & vbCrLf
    Next
    MsgBox tmp
        
End Sub
----------------------------------------
各位老大,上面的代码在win2000+VB6和winXp+Vb6+VB sp6的结果不一样,到底为什么?

解决方案 »

  1.   

    你是指显示出来的方式不一样吧.
    我也不太明白,可能与使用的字体或编码有关吧中文需要二位.
    英文只要一位.与这些东东有关可以试试看强制使用某一种字符串
    如UNiCODE 或ANSI
    建议看一下
    Chr
    ChrB
    ChrW
    这三个函数.应该对你有帮助
      

  2.   

    在VB6+win2000或VB6+winXp下显示的是直角三角形
    http://www.3699.cn/1.bmp另一种情况下显示的是等腰三角形
    http://www.3699.cn/2.bmp
      

  3.   

    呵呵!看了图才明白,这明显是系统字体不同引起的差别!
    你使用了Space(10 - i)空格分隔距离太不可靠了,在英文字体下,它占半个英文字符位,在中文字体下它占一个英文字符位。
    你可以在显示属性中,对桌面外观进行改动,将消息框的字体由英文(一般是Tahoma)8号,改为中文(宋体)9号,等腰就会变直角了,反之,直角又会变等腰^_^