在线等待——关于图形的一个比较棘手的问题?

junnef 2002-06-12 06:31:22
我有一个图片,图片上散布着一些点,我在datawindow控件的数据源中放置了一个picture控件,将图片关联了进去,由于图片较大,可以拖动datawindow的滚动条移动图片,我现在点击数据窗口控件中图片上小圆点的位置,想获得小圆点相对于图片左边缘和上边缘的逻辑座标值,可是datawindow控件中的点击事件(xpos,ypos)取得的是相对于数据窗口控件做边缘和上边缘的坐标值(由于图片可以滚动,所以无法得到相对于图形控件边缘的值),我应该怎样做,才能将所得值转换成相对于数据源中图片控件的边缘的坐标值。不知道我说清楚没有?我是初学,可能有些方法属性不知道,请各位高手多多帮忙了,小弟不胜感激!
...全文
31 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jimly 2002-06-13
  • 打赏
  • 举报
回复
看看:
http://www.csdn.net/expert/topic/643/643471.xml?temp=.7475244
junnef 2002-06-13
  • 打赏
  • 举报
回复
pb中有没有自己带的函数呀?
WorldMobile 2002-06-13
  • 打赏
  • 举报
回复
用下面几个WindowAPI函数

FUNCTION ulong GetScrollPos(ulong hwnd,ulong nBar)LIBRARY "user32.dll" //获得滚动条的当前值
FUNCTION ulong GetScrollRange(ulong hwnd,ulong nBar,ref ulong lpMinPos,ref ulong lpMaxPos) LIBRARY "user32.dll"//获得滚动条的最大最小值

先用GetScrollRange取得滚动条的最大最小值,
然后用GetScrollPos取得滚动条的当前值,要根据这些值
做一些相应的处理即可达到你的要求
写一写试试吧
junnef 2002-06-13
  • 打赏
  • 举报
回复
删除搞定了,那么简单,我多写了个bitmap,是那个api在pb里怎么用,我还是没弄明白,手头少资料呀。
junnef 2002-06-13
  • 打赏
  • 举报
回复
还有,比如我用modify在DW中动态加入了一个bitemap对象,显示一个实心圆点,可我现在想DW恢复成原始的状态,就是去掉后加上的bitemap对象,我该怎么办?创建时用的create,取消时destroy该怎么些?我看帮助看不大懂,写上去可是并不能消除。
junnef 2002-06-13
  • 打赏
  • 举报
回复
是呀,不过你能告诉我那个api怎么用么?
Hanson_bati_zhu 2002-06-13
  • 打赏
  • 举报
回复
好复杂
获取滚动条相对位置可以通过
dw_control.Object.DataWindow.HorizontalScrollPosition

dw_control.Object.DataWindow.VerticalScrollPosition
解决

junnef 2002-06-13
  • 打赏
  • 举报
回复
FUNCTION ulong GetScrollRange(ulong hwnd,ulong nBar,ref ulong lpMinPos,ref ulong lpMaxPos) LIBRARY "user32.dll"中在pb里
ulong nBar变量我该怎么写?

1,075

社区成员

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

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