能否进行窗口的动态缩放(300分)

  • 主题发起人 主题发起人 guoguo
  • 开始时间 开始时间
G

guoguo

Unregistered / Unconfirmed
GUEST, unregistred user!
窗口在运行过程中能否进行比例缩放,缩放的同时窗口上的显示内容也进行同比例缩放
 
当然可以, onresize事件中。
好像有这方面的控件,可以 vcl.vclxx.com找找。
 
你是想在程序运行中,当窗体的大小改变的时候,要求按钮,编辑框等控件的大小也随之改变吧。
做法有两种
1。如果你希望控件的位置随窗体变化而大小不变,可将属性编辑框中anchors设为:
akRight = true ;akBottom = true ;akLeft = false;akTop = false ;
2.如果你希望控件的位置和大小都随窗体变化而变化,可将属性编辑框中anchors设为:
akRight = true ;akBottom = true ;akLeft = true;akTop = true ;
 
另外我曾经试过在OnResize事件处理例程中使用控件的scaleby属性,但效果不好。控件上的字体会随控件的
大小而按比例变化。当控件变得比较小时,字就变得很难看。
 
help:TWinControl.ScaleBy
 
BrainTwist:
这种方法虽然可调整,但不够理想(比例失调),我认为还是用控件或用代码调整来得好。
 
同意coao
在www.vclxx.com上有你要的构件
缺点:每次缩放,而把位置的值取整后,不能和原来的完全一致,
所以多次缩放后,各个构件的位置会有偏移。

 
用代码控制好,我以前也编写过:
先设置变量l,w,t,h(跟别表示控件的left,width,top,height),初值为1,
各可视控件的left,width,top,height的值都分别乘以(l,w,t,h)
当窗体调整时,分别改变l,w,t,h的值就可以了。
 
to philips :
我曾经编过,天!恐怖!
我觉得所有的缩放都只是在一定范围内才有效。不能无限度。
 
我同意BrainTwist的说法
 
用timer如何?
 
这个问题我问答过,可以使用Windows API AnimateWindow。
AnimateWindow(Handle,400,AW_CENTER);这样做是弹出。
AnimateWindow(Handle,400,AW_CENTER or AW_HIDE);这样这是弹入。
当然还有其它一些弹出弹入方式,具体请查看WINDOWS.PAS单元中的相关标志声明。
300分拿来,叫我也感觉一下排名第一的滋味好吗?谢谢!
 
liguang你好,你能不能再具体一些,我要的窗口缩放应能够达到窗口Canvas上的text
也能进行缩放,而不单单是窗口上的控件,我前面没有说明清楚,重新说明一下,谢谢啦
 
附加功能 将问题提前
 
编程控制的一个难题是: 字体的 高宽比 怎样调整,不知大家是怎么做的?
 
麻煩﹐麻煩﹐你只要根據自己需要作相應調整就行了﹐越考慮得多越麻煩﹐到最后這儿
也出問題﹐那儿也出問題﹐所以若是自己學﹐可以一試﹐若是跟公司寫﹐就只以需求為
需求了。對不對也。
 
用onresize事件比较方便,至于字体,你可以让它在onresize的时候改变一下大小即可。
 
窗口映射模式的问题,打印预览就要用到这个技术:
SetWindowExtEx
SetViewPortExtEx
看看这里:
<a href="DispQ.asp?LID=361378">如何进行打印预览编程</a>
 
后退
顶部