我想让控件的大小跟随窗体的大小改变,可是不知道应该在什么消息的相应函数中改变
说明:我已经试过resize消息和paint消息都不行
请高手指教
谢谢

解决方案 »

  1.   

    Resize 事件
          当一个对象第一次显示或当一个对象的窗口状态改变时该事件发生。(例如,一个窗体被最大化、最小化或被还原。)语法Private Sub Form_Resize( )Private Sub object_Resize(height As Single, width As Single)Resize 事件语法包括下列部分:部分 描述 
    object 一个对象表达式,其值是“应用于”列表中的一个对象。 
    height 指定控件新高度的数。 
    width 指定控件新宽度的数。 
    说明当父窗体调整大小时,可用 Resize 事件过程来移动控件或调整其大小。也可用此事件过程来重新计算那些变量或属性,如:ScaleHeight 和 ScaleWidth 等,它们取决于该窗体的尺寸。如果在调整大小时想要保持图形的大小与窗体的大小成比例,可在一个 Resize 事件中通过使用 Refresh 方法调用 Paint 事件。任何时候只要 AutoRedraw 属性被设置为 False 而且窗体被调整大小,Visual Basic 也会按 Resize 和 Paint 的顺序调用相关的事件。当给这些相关事件附加过程时,要确保它们的操作不会互相冲突。当一个 OLE 容器控件的 SizeMode 属性被设置为 2(自动调大小)时,该控件自动根据所显示的包含于该控件之中的对象的大小来调整其大小。如果所显示的对象的大小发生变化,则该控件自动重调其大小以适应该对象的变化。当这种情况出现时,为该对象调用 Resize 事件会在 OLE 容器控件被重调大小之前发生。height 和 width 部分指示该对象显示的最佳大小(这个尺寸由创建该对象的应用程序决定)。可通过在 Resize 事件中改变 height 和 width 部分的值来按不同的尺寸设定控件的大小。
      

  2.   

    resize32.ocx  控件可以实现你的要求
      

  3.   

    resize事件可以完成你想要的功能
      

  4.   

    在Form_Resize()事件中应该可行的,只是要判断窗体当前是不是最小化状态。一般来说窗体的height小于500时应该是最小化了。或者你也可以用api来取得当前任务栏的高度。
      

  5.   

    我得form的属性Border style设置成了0(none)没有设置成2(sizable)
    不知道这时候当点击最大化或最小化按钮时是不是不会产生resize事件?
    另外怎么能吧form的初始设为最大化(保留任务栏)而不是全屏?