PowerBuilder9.0窗体控件自动缩放的实现
2011-05-24 13:59
267 查看
新建一个空白窗体(window),在自定义事件里,定义名为ue_getScale的事件。
入口参数None,返回值None, 事件ID为None。
事件内容:
//获取控件与窗口比例大小
int li_i
DragObject wnd
for li_i = upperBound(Control[]) to 1 step -1
wnd = control[li_i]
id_scaleX[li_i] = wnd.X / width
id_scaleY[li_i] = wnd.Y / height
id_scaleWidth[li_i] = wnd.width / width
id_scaleHeight[li_i] = wnd.height / height
next
在resize事件里写入如下代码:
int li_i, li_count
DragObject w_object
if sizeType = 1 then return 0 //最小化窗口不处理
li_count = upperBound(id_scaleX[])
if li_count < 0 then return 0
SetRedraw(false)
for li_i = 1 to li_count
w_object = control[li_i]
w_object.X = ceiling(width * id_scaleX[li_i])
w_object.Y = ceiling(height * id_scaleY[li_i])
w_object.width = ceiling(width * id_scaleWidth[li_i])
w_object.height = ceiling(height * id_scaleHeight[li_i])
next
SetRedraw(true)
最后在Open事件里触发Ue_getScale()事件就可以了
备注:对DataWindow和OLE控件效果不是很好
入口参数None,返回值None, 事件ID为None。
事件内容:
//获取控件与窗口比例大小
int li_i
DragObject wnd
for li_i = upperBound(Control[]) to 1 step -1
wnd = control[li_i]
id_scaleX[li_i] = wnd.X / width
id_scaleY[li_i] = wnd.Y / height
id_scaleWidth[li_i] = wnd.width / width
id_scaleHeight[li_i] = wnd.height / height
next
在resize事件里写入如下代码:
int li_i, li_count
DragObject w_object
if sizeType = 1 then return 0 //最小化窗口不处理
li_count = upperBound(id_scaleX[])
if li_count < 0 then return 0
SetRedraw(false)
for li_i = 1 to li_count
w_object = control[li_i]
w_object.X = ceiling(width * id_scaleX[li_i])
w_object.Y = ceiling(height * id_scaleY[li_i])
w_object.width = ceiling(width * id_scaleWidth[li_i])
w_object.height = ceiling(height * id_scaleHeight[li_i])
next
SetRedraw(true)
最后在Open事件里触发Ue_getScale()事件就可以了
备注:对DataWindow和OLE控件效果不是很好
相关文章推荐
- C#实现控件随窗体拖动而自动缩放其大小
- 如何实现控件随窗体大小的改变而自动适应其改变
- c#,VC++ 在WinForm开发中如何实现控件随窗体大小的改变而自动适应其改变
- 如何实现控件随窗体大小的改变而自动适应其改变
- C#实现窗体中的各个控件同比自动放缩大小
- 控件随窗体自动缩放大小(c#2005)
- 学习使用Material Design控件(四)Android实现标题栏自动缩放、放大效果
- 基于mfc的对话框编程中,实现控件随对话框大小自动缩放以及通过滚动条实现控件移动功能
- C#里WinForm开发中如何实现控件随窗体大小的改变而自动适应其改变
- C#如何实现控件随窗体大小的改变而自动适应
- C#里WinForm开发中如何实现控件随窗体大小的改变而自动适应其改变
- [置顶] C#实现窗体拖动时各个控件同比自动放缩大小
- C#实现窗体中的各个控件同比自动放缩大小
- C#里WinForm开发中如何实现控件随窗体大小的改变而自动适应其改变
- C#里WinForm开发中如何实现控件随窗体大小的改变而自动适应其改变
- 控件随窗体自动缩放大小(c#2005)
- C#实现某个控件上的控件随控件拖动而自动缩放其大小
- 在.Net的WinForm开发中如何实现控件随窗体大小的改变而自动适应其改变
- 在.Net的WinForm开发中如何实现控件随窗体大小的改变而自动适应其改变<收藏>
- 重点推荐:VB6.0 自动缩放窗体内控件的类代码