在pb中如何把一个窗口显示在屏幕中心?

lwd12345 2000-07-10 07:41:00
在pb中如何把一个窗口显示在屏幕中心?
...全文
237 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinyue 2000-07-14
  • 打赏
  • 举报
回复
如果分辨率不一样呢,手工设置的也行吗,我在其他可视化语言中都出现了手工设置和机器的不兼容问题!
dreamseekers 2000-07-13
  • 打赏
  • 举报
回复
其实pb中的窗口有自己的属性,如x,y,width,height等,可以手工设置,到时设置的差不多就可以了,也省了写代码。
css 2000-07-11
  • 打赏
  • 举报
回复
哥们,你可以自己写个函数。
例如win_center ()
这个函数只有一个window类型的参数:win

函数的代码如下,和上面两位哥们说的基本一样

Integer li_ScreenH, li_ScreenW

Environment le_env

GetEnvironment (le_env)
li_ScreenH = PixelsToUnits (le_env.ScreenHeight, YPixelsToUnits!)
li_ScreenW = PixelsToUnits (le_env.ScreenWidth, XPixelsToUnits!)

win.Y = (li_ScreenH - win.Height) /2
win.X = (li_ScreenW - win.Width) /2

用的时候,想让那个窗口局中,就在它的OPEN时间里写上 win_center(this)
Hhha 2000-07-10
  • 打赏
  • 举报
回复
看看environment对象就可以了.

好像有个ScreenWidth和ScreenHeight的属性.
能得到屏幕的大小

environment len_temp
long ll_width, ll_height
window lw_temp
len_temp = Create environment
ll_width = len_temp.screenwidth
ll_height = len_temp.screenheight

lw_temp.x = (ll_width - lw_temp.width) /2
lw_temp.y = (ll_height - lw_temp.height) / 2

2010-08-07上传过一个1.0版的,那个是在XP的SP2系统上测试的。 没有发现单种颜色全透明失效的问题。后来在XP的SP3上运行了一下,发现单种颜色全透明失效! 很惊讶啊!同为XP,相同的函数(SetLayeredWindowAttributes)居然表现出不同的效果! 于是决定稍微改动一下程序,从原来的双缓存改为三缓存(哈哈,没错,是三缓存)。 于是程序运行表现良好了(并且可以使某种颜色的全透明和全部像素以某个透明值显示同时起作用)。 (WIN7上还没测试)。 程序浏览图像用的是GDI+库。 程序默认打开时会播放内置的一个Gif动态图片,窗口形状根据图片动态调整。 你可以打开其他图片以改变窗口的异形形状。 程序界面是一个三无窗口:无任务栏、无标题栏、无边框。 为方便控制,程序具有托盘图标,且托盘图标随Gif图像动态改变。 程序异形窗口用的函数是SetLayeredWindowAttributes,把某种颜色设为全透明。 并且该透明颜色在程序有两种方法进行设置: 1.打开通用颜色对话框,选择一种颜色; 2.在窗口上双击鼠标,双击处的颜色作为透明色; 附件的“虫子.gif”图片可以打开试试~~虫子好像在屏幕上爬似的~~ 程序附带浏览图片和截屏功能。 注意:保存gif图片只能保存单帧。本来想用Gdi+的SaveAdd方法保存多帧,却发现老是失败并返回Win32Error错误。 网上一搜发现原来Gdi+不支持Gif多帧的保存功能,只支持tiff的多帧保存,而且tiff多帧保存后也没有时间戳。 所以只得放弃。 左键可以拖动窗口移动。 程序只允许运行一个实例。注册了两个热键:Shift+F8和Shift+F9。 有问题联系:hastings1986@163.com

1,075

社区成员

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

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