怎么让运行的程序界面固定在屏幕某个位置?然后大小不能改变?
我在程序界面里放置了picture框控件
程序运行时,改变界面大小但是picture控件大小不变
怎么才能使装入picture控件的图片始终跟随界面大小一起变化(完整的装入)?

解决方案 »

  1.   

    第一个的话你可以设置窗体的属性
    BorderStyle=1-fixed single
    StartUpPosition=2-屏幕中心
    这样就可以固定位置且不能改变大小了。
    如果你想界面改变图片也跟着改变,那就得同时把图片也得放大。
    这样做的效果可能造成图象失真,不可取啊。所以不推荐这么做。
      

  2.   

    把Form的controlbox,FormBorderStyle属性设为false
    MaximizeBox和MinimizeBox设为false
    picture控件不行,Image控件可以
      

  3.   

    1、把窗躰固定在某一個位置:需要設置窗躰的top,和left屬性。不能改變大小,樓上的都說了。
       居中如下代碼:(其他的位置就不用我說了吧)
      If Screen.Width - frm.Width > 0 Then
          frm.Left = (Screen.Width - frm.Width) / 2
      End If
      If Screen.Height - frm.Height > 0 Then
          frm.Top = (Screen.Height - frm.Height) / 2
      End If
    2、圖片的大小改變需要特定的資源文件才能不失真。
      

  4.   

    第一个的话你可以设置窗体的属性
    BorderStyle=1-fixed single
    StartUpPosition=2-屏幕中心(只能保证开始运行的时候位置不变)。
    如果你想要程序运行时的界面位置为上次退出程序时候的位置,那么可以用Getsetting和savesetting二个函数来固定位置。
    这样就可以固定位置且不能改变大小了。
    对于Picture控件也可以改变向Image控件那样改变图象的大小(Image控件的Stretch必须设置为True),但必须用Picture的PaintPicture,用它就可以随意改变图象的大小了。
      

  5.   

    Private Sub Form_Resize()
    Image1.Stretch = True
    Image1.Picture = LoadPicture("C:\Documents and Settings\All Users\Documents\My Pictures\示例图片\Sunset.jpg")Image1.Width = Form1.Width
    Image1.Height = Form1.Height
    Image1.Move 0, 0
    End Sub
      

  6.   

    用 image 並不是一個明智的選擇,如果需要讓圖片隨著窗體大小改變應該使用 PaintPicture 方法,樓主可以按下面的步驟試一試效果就知道了.1. 在窗體的picture屬性中放入一幅圖片.
    2. 在窗體中寫入下面代碼:Option ExplicitPrivate Sub Form_Load()
        Me.AutoRedraw = True
    End SubPrivate Sub Form_Resize()
        Me.PaintPicture Me.Picture, 0, 0, Me.ScaleWidth, Me.ScaleHeight
    End Sub
    3. 運行程序.當然,上面的代碼頁可以放在PictureBox裏面,用PictureBox的PaintPicture 方法,繪製在PictureBox裏面.
      

  7.   

    PaintPicture 方法
          用以在 Form, PictureBox 或 Printer 上绘制图形文件(.bmp、.wmf、.emf、.cur、.ico或 .dib)的内容。不支持命名参数。语法object.PaintPicture picture, x1, y1, width1, height1, x2, y2, width2, height2, opcodePaintPicture 方法的语法包含下列部分:部分 描述 
    object 可选的。一个对象表达式,其值为“应用于”列表中的一个对象。如果省略 object,带有焦点的 Form 对象缺省为 object。 
    Picture 必需的。要绘制到 object 上的图形源。Form 或 PictureBox 必须是 Picture 属性。 
    x1, y1 必需的。均为单精度值,指定在 object 上绘制 picture 的目标坐标(x-轴和y-轴)。object 的 ScaleMode 属性决定使用的度量单位。  
    Width1 可选的。单精度值,指示 picture 的目标宽度。object 的 ScaleMode 属性决定使用的度量单位。如果目标宽度比源宽度 (width2) 大或小,将适当地拉伸或压缩 picture。如果该参数省略,则使用源宽度。 
    Height1 可选的。 单精度值,指示 picture 的目标高度。object 的 ScaleMode 属性决定使用的度量单位。如果目标高度比源高度 (height2) 大或小,将适当地拉伸或压缩 picture。如果该参数省略,则使用源高度。 
    x2, y2 可选的。均为单精度值,指示 picture 内剪贴区的坐标(x-轴和y-轴)。object 的 ScaleMode 属性决定使用的度量单位。如果该参数省略,则缺省为 0。 
    Width2 可选的。单精度值,指示 picture 内剪贴区的源宽度。object 的 ScaleMode 属性决定使用的度量单位。如果该参数省略,则使用整个源宽度。 
    Height2 可选的。 单精度值,指示 picture 内剪贴区的源高度。object 的 ScaleMode 属性决定使用的度量单位。如果该参数省略,则使用整个源高度。 
    Opcode 可选的。是长型值或仅由位图使用的代码。它用来定义在将 pictur 绘制到 object 上时对 picture 执行的位操作(例如, vbMergeCopy 或 vbSrcAnd 操作符)。关于位操作符常数的完整列表,请参阅 Visual Basic Help 文件中的 RasterOp Constants 主题。 
    在使用opcode时有一些限制。例如,如果资源是图标或图元文件,则只能使用 vbSrcCopy,而不能使用其他的opcode;并且,与图案 (或 SDK 术语中的"画笔"),如 MERGECOPY、 PATCOPY、 PATPAINT 和 PATINVERT,相交互的opcode实际上是同目标的 FillStyle 属性交互。注意   Opcode 用于将按位操作传递到位图。当传递其他图象类型时将一个值给该参数会造成“无效过程调用或参数”错误。这是设计的原因。要避免这个错误,对于除位图外的图象,将 Opcode 参数置为空。
     
    说明通过使用负的目标高度值 (height1) 和 / 或目标宽度值 (width1) ,可以水平或垂直翻转位图。 可以省略任何多个可选的尾部的参数 。如果省略了一个或多个可选尾部参数,则不能在指定的最后一个参数后面使用逗号。如果想指定某个可选参数,则必须先指定语法中出现在该参数前面的全部参数。注意,在将一个.Bmp加载入 PictureBox 控件和使用 Windows API 函数 BitBlt() 添加图片之间有一点不同。当您对一个图象使用 BitBlt() 时,PictureBox 控件不知道象您使用 LoadPicture方法那样去调整大小。将 ScaleWidth 和 ScaleHeight 属性设置为图象的大小也不起作用。如果您想在使用 BitBlt 之后用 PictureBox 调整新图片的大小,必须用代码手工做,转换单位并处理边框,下面是如何这样做的一个简单示例:Sub ResizePictureBoxToImage(pic as PictureBox, twipWd _
      as Integer, twipHt as Integer)
     ' 该代码假设所有的单位都为缇。如果
     ' 不是,必须在调用该例程之前,转换为缇。
     ' 这里也假设图象显示在0,0处。
     Dim BorderHt as Integer, BorderWd as Integer
     BorderWd = Pic.Width - Pic.ScaleWidth
     BorderHt = Pic.Height - Pic.ScaleHeight
     pic.Move pic.Left, pic.Top, twipWd + BorderWd, _
       twipHt + BorderHt
    End Sub