为什么在VB中win2000和win98中的设备映射模式有区别
我在vb程序中写了如下代码:
Dim thissize As Size, thispoint As POINTAPI
pic.BackColor = RGB(10, 10, 30): pic.ForeColor = RGB(255, 255, 200)
pic.AutoRedraw = True: pic.DrawMode = vbMergePen ' vbCopyPen
pic.ScaleMode = vbPixels 'for bitmap pixels
sdwid = pic.ScaleWidth: sdhei = pic.ScaleHeight: ldivs = 1 ' lightwid / sdwid
pic.ScaleWidth = sdwid: pic.ScaleHeight = -sdhei
pic.ScaleLeft = -sdwid / 2: pic.ScaleTop = sdhei / 2
SetMapMode pic.hdc, MM_ANISOTROPIC
SetWindowExtEx pic.hdc, sdwid, -sdhei, thissize
SetViewportExtEx pic.hdc, sdwid, sdhei, thissize
SetWindowOrgEx pic.hdc, -sdwid / 2, sdhei / 2, thispoint
'pic是一个图形框
'sdwid,sdhei是图形框的象素长和宽
该段代码建立一个设备坐标同标准的直角坐标,
而且设备单位是象素,同时在此图象框中用
pic的绘图函数和GDI绘图api的坐标完成一致。
(如使用pic.line (x1,y1)-(x2,y2)就可用
MoveToEx pic.hdc,x1,y1,thispoint:Lineto pic.hdc,x2,y2来代替)
程序原本在win98下能正常的运行,但装win2000后,
在win2000下运行只出现左下角四分之一个象限,
其它部分变成透明的。
另外,该段程序在win2000下VC中能正确执行。
请问问题出在哪里呢?