Const LOGPIXELSY = 90
GetDeviceCaps(GetDC(0), LOGPIXELSY)
请问这个常数LOGPIXELSY的值是自己设定的还是固定是90。能不能设定为别的值
还有Const PST_SCANNER = &H22&这个常数后面的“&”也就是第二个“&”是什么意思来的,
各位大侠帮帮忙,小弟感激不尽

解决方案 »

  1.   

    不可以,
    &h &表示16进制表示的长整型数据
      

  2.   

    Private Declare Function DrawText Lib"user32" Alias"DrawTextA"
        (ByVal hDC As Long,ByVal lpStr As String,ByVal nCount As Long,
         lpRect As RECT,ByVal wFormat As Long)As Long
    其中wFormat有多常数如:DT_TOP=&H0,DT_LEFT=&H0
    1.请问能不能这样赋值:DT_TOP=&H0,DT_TOP=DT_LEFT;
    2请问在用到DT_LEFT的地方能不能用DT_TOP代替,它们两个的值相等
      

  3.   

    1.声明常量的时候可以使用另外一个常量
    const DT_TOP=&H0
    const DT_LEFT=DT_TOP
    2.值相等当然就可以代替,但是那样就减弱了代码的可读性
      

  4.   

    哦,既然可以代替为什么不用一个常量代替如DT_xxx.而且我看书上说的DT_TOP和DT_LEFT表示不同的意思。如DT_TOP:文本对齐到矩形的顶部。DT_LEFT:文本左对齐
    wFormat:一个标志位数组,决定了以何种方式执行郐图
      

  5.   

    但是我看书上说的DT_TOP和DT_LEFT表示不同的意思。如:DT_TOP:文本对齐到矩形的顶部。DT_LEFT:文本左对齐
      

  6.   

    DT_TOP和DT_LEFT两个值取一样,可以认为这两种样式是默认的样式。也就是说如果你不指定DT_BOTTOM或者DT_RIGHT其他的样式,那么就以这种默认的方式,即左对齐、顶端对齐,来显示文本。
      

  7.   

    谢谢上面两位大侠的帮忙。我还想问两个问题
    1.程序声明的常数是不是都能用上阿.如:
    PrivPrivate Const DT_BOTTOM=&H8
    PrivPrivate Const DT_CALCRECT=&H400
    PrivPrivate Const DT_CENTER=&H1
    PrivPrivate Const DT_CHARSTREAM=4
    PrivPrivate Const DT_DISPFILE=6
    PrivPrivate Const DT_EXPANDTABS=&H40
    PrivPrivate Const DT_EXTERNALLEADING=&H200
    PrivPrivate Const DT_INTERNAL=&H1000
    PrivPrivate Const DT_LEFT=&H0
    PrivPrivate Const DT_METAFILE=5
    PrivPrivate Const DT_NOCLIP=&H100
    PrivPrivate Const DT_NOPREFIX=&H800
    PrivPrivate Const DT_RIGHT=&H2
    PrivPrivate Const DT_SINGLELINE=&H20
    PrivPrivate Const DT_TABSTOP=&H80
    PrivPrivate Const DT_TOP=&H0
    PrivPrivate Const DT_VCENTER=&H4
    PrivPrivate Const DT_WORDBREAK=&H10
    而程序中只用到这个如:A=DrawText(B,str+Chr(13)+str2+Chr(13)+str3,-1,ARR(0),DT_RIGHT)那除了DT_RIGHT外其他的常量有什么用阿