小问题,UP有分(前50人)。。。。。。。。。

ChinaSunFire 2002-02-18 10:49:52

Me.Height = Me.Height / 2

结果是窗体从底部向上缩小了1/2
如何将窗体从顶部缩小1/2,并且底部位置不变??

...全文
32 62 打赏 收藏 转发到动态 举报
写回复
用AI写文章
62 条回复
切换为时间正序
请发表友善的回复…
发表回复
BBBBadBoy 2002-02-20
  • 打赏
  • 举报
回复
如果能把窗体的高度和宽度分别于Top、Left 做个调换,那么问题不就解决了吗?
Chice_wxg 2002-02-20
  • 打赏
  • 举报
回复


TO ChinaSunFire(什么的什么还是什么)

我只能告诉你,不用控件更麻烦!而且要在程序结束的时候进行扫尾工作。

我建议你看看MSDN里关于Windows的文档,你对系统要求太高了,系统并不是你想怎么样都能行的。


ChinaSunFire 2002-02-20
  • 打赏
  • 举报
回复
我不知道我所想的与所实现的距离有多远,更不知道我能否去实现它,但我只知道
追求与求索是一个编程爱好者的品质,我会继续寻求解决之道,不管有多难,多远。
虽然此贴未能达到我的要求,但我还是要对参与次贴的朋友们表示感谢!!
谢谢大家!!!
并送100分
。。。
结帐。
ChinaSunFire 2002-02-19
  • 打赏
  • 举报
回复
不能把窗体上的任何控件上移

junglerover 2002-02-19
  • 打赏
  • 举报
回复
简单的办法:在窗体中放一个PICTUREBOX控件,和窗体一样大。设置
其BORDERSTYLE为0。
然后把所有需要用的控件都放在此PICTUREBOX中。
改变大小后,将此PICTUREBOX上移即可。
ChinaSunFire 2002-02-19
  • 打赏
  • 举报
回复
不能把窗体上的所有东西都往上移
good_sun 2002-02-19
  • 打赏
  • 举报
回复
可不可以先Me.Height=Me.Height/2,之后把窗体上的所有东西都往上移Me.Height/2,为了保证控件坐标不变再用Scale方法改变窗体的坐标系统
jamex 2002-02-19
  • 打赏
  • 举报
回复
2句话,倒过来一下,效果好一点:
Me.Top = Me.Top + Me.Height / 2
Me.Height = Me.Height / 2
pasl 2002-02-19
  • 打赏
  • 举报
回复
To:ChinaSunFire(什么的什么还是什么)
我觉的问题已经解决了!
先把窗体缩小me.height/2,再将控件上移me.height/2的思路能够达到你的要求,你又何必在乎他是上面缩小还是下面缩小。他们的最终结果一样
lty 2002-02-19
  • 打赏
  • 举报
回复
没分也up
!
fuxc 2002-02-19
  • 打赏
  • 举报
回复
再加几个控件试试看,控件跟着一起走了,加了容器也不怕

Dim pic As StdPicture
Dim lngHeight As Long

Private Sub Form_Load()
Dim o

Set pic = LoadPicture("C:\WINDOWS\Clouds.bmp")
lngHeight = Me.height

For Each o In Me.Controls
If o.Container Is Me Then o.Tag = o.Top
Next
End Sub

Private Sub Form_Paint()
Me.Cls
Me.PaintPicture pic, 0, Me.height - lngHeight
End Sub

Private Sub Form_Resize()
Dim o
For Each o In Me.Controls
If o.Container Is Me Then o.Move o.Left, o.Tag + (Me.height - lngHeight)
Next
Form_Paint
End Sub
fuxc 2002-02-19
  • 打赏
  • 举报
回复
试试这个,背景跟着top走

Dim pic As StdPicture
Dim lngHeight As Long

Private Sub Form_Load()
Set pic = LoadPicture("C:\WINDOWS\Clouds.bmp")
lngHeight = Me.height
End Sub

Private Sub Form_Paint()
Me.Cls
Me.PaintPicture pic, 0, Me.height - lngHeight
End Sub

Private Sub Form_Resize()
Form_Paint
End Sub
ChinaSunFire 2002-02-19
  • 打赏
  • 举报
回复
为什么
Me.Height = Me.Height / 2
之后
窗体先把底部缩进去,而不是窗体顶部呢?
也就是,为什么会”见头不见脚“呢?


fuxc 2002-02-19
  • 打赏
  • 举报
回复
不过确实是控件简单
fling_boy 2002-02-19
  • 打赏
  • 举报
回复
照你的意思,不放一个容器基本上很难
ChinaSunFire 2002-02-19
  • 打赏
  • 举报
回复
to:
Chice_wxg(我怕谁?我是谁!我是流氓我最贼。)
有不用控件的方法吗???

麻烦

谢谢!!!
ChinaSunFire 2002-02-19
  • 打赏
  • 举报
回复
to:
Chice_wxg(我怕谁?我是谁!我是流氓我最贼。)
有不用控件的方法吗???

麻烦

谢谢!!!
fuxc 2002-02-19
  • 打赏
  • 举报
回复
有点问题,改:
Dim pic As StdPicture
Me.Height = Me.Height / 2
If Me.Picture <> 0 Then Set pic = Me.Picture
Me.Picture = LoadPicture("")
Me.PaintPicture pic, 0, -Me.Height

只能运行一次,多次的话还要改
Chice_wxg 2002-02-19
  • 打赏
  • 举报
回复
楼上代码好象不行。Win不允许从同一个DC复制到自己。

必须建立后备图片,还不如用控件简单呢。
fuxc 2002-02-19
  • 打赏
  • 举报
回复
Me.PaintPicture Me.Picture, -Me.Height, 0
加载更多回复(42)

7,763

社区成员

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

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