为什么在VB中win2000和win98中的设备映射模式有区别

always 2000-08-09 09:24:00
我在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中能正确执行。
请问问题出在哪里呢?

...全文
142 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
always 2000-08-24
  • 打赏
  • 举报
回复
我就是要在win2000下,在VB中用api建立一个标准的坐标系统,原点在中心,X轴向右,Y轴向上即可,请大家帮忙。 最好用代码。
  • 打赏
  • 举报
回复
???

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧