我按照自定义坐标系 Picture1.Scale (-180, 90)-(180, -90)
画出了世界地图的轮廓,然后利用API填充
hBrushOld = SelectObject(Picture1.hdc, hBrush) '保存当前画刷
hBrush = CreateSolidBrush(QBColor(Rnd * 15)) hRgn = CreatePolygonRgn(cpoint(0), countarr(i) + 1, ALTERNATE)
If hRgn Then FillRgn Picture1.hdc, hRgn, hBrush
SelectObject Picture1.hdc, hBrushOld '恢复原刷子
DeleteObject hRgn
DeleteObject hBrush
可是填充后发现API填充时用的点的坐标好像是屏幕坐标(以Picturebox的左上角为坐标原点),
而实际上我的坐标值都是基于上面自定义的坐标系的,这样图像显示就错了
哪位大侠指点迷津?谢谢!
解决方案 »
- 菜鸟问题:如何修改文本内容
- 如何用VB读取delphi做的代密码的.db文件?
- 高手们帮帮忙,如何能让ListBox控件和MSFlexGrid控件中的内容实现滚动?
- EXCEL中VBA通过ADO与Sybase数据库相连接,出现的问题!大家帮忙啊!
- 新手请教!高手请进!在线等待!
- BeforeNavigate2中设置Cancel=true后,无法触发DocumentComplete事件
- 大虾们--快进来
- 关于combo空键的小问题
- http://go8.163.com/dbcontrols/最新VB免费控件38个
- 控制系统中的VB编程
- VB中一个动作引发好几个事件,有没有办法只让第一个事件执行阿?其他事件完全不进入
- 调查]: 你还记得自己写的第一个程序么?说说“她”是什么样的一个程序。
hBrushOld = SelectObject(Picture1.hdc, hBrush) '保存当前画刷
SelectObject Picture1.hdc, hBrushOld '恢复原刷子
DeleteObject hBrush
和Picture1的DC无关,而自定义坐标是在Picture1上用Polygon函数
画多边形的同时,就会直接用当前Brush填充
Public Declare Function Polygon Lib "gdi32" Alias "Polygon" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long
描绘一个多边形,由两点或三点的任意系列构成。windows会将最后一个点与第一个点连接起来,从而封闭多边形。多边形的边框用当前选定的画笔描绘,多边形用当前选定的刷子填充我也试了,只有填充三角形才成功啊
可我的多边形由好多点组成
我也试了,只有填充三角形才成功啊
可我的多边形由好多点组成
*/那不是polygon的问题,可能是你的点的序列有问题吧,我用polygon填充过八边形,没有问题
hBrush = CreateSolidBrush(QBColor(Rnd * 15))
SelectObject Picture1.hdc, hBrush
Polygon Picture1.hdc, cpoint(0), countarr(i) + 1
DeleteObject hBrush可按照这个填充的效果也是以Picturebox左上角为坐标原点冽