用scalewidth and scaleheight!

解决方案 »

  1.   

    Private Sub Form_Resize()
        Picture1.Width = Me.ScaleWidth
        Picture1.Height = Me.ScaleHeight
    End Sub
      

  2.   

    Amoon说的方法可行但不科学,因为菜单项的高度是随系统设置中的菜单字体大小的改变而改变的!当然用GetSystemMetrics(20)可以得到菜单的高度!
    Public Declare Function GetSystemMetrics Lib "user32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long(Amoon,对不起,我是一个直人,原谅我吧……)
      

  3.   

    height=picture1.height+height-scaleheight
      

  4.   

    Un1,你这不是和我那一样吗?(这真是叫脱裤子放屁----多此一举!Un1,对不起,我是一个直人,原谅我吧……)
      

  5.   

    NiceFeather老兄,能否告诉我,GetSystemMetrics参数的取值比如SM_CYCAPTIONSW
      

  6.   

    窗体的scalewidth,scaleheight不包括标题栏和菜单的尺寸,不防试试me.scalewidth=picturebox.width
    me.scaleheight=picturebox.height
      

  7.   

    Declare Function GetSystemMetrics Lib "user32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long 
    说明 
    返回与windows环境有关的信息 
    返回值 
    Long,取决于具体的常数索引 
    参数表 
    参数 类型及说明 
    nIndex Long,常数,指定欲获取的信息;如下表所示 
    nIndex常数设置 
    常数定义 取得信息 
    SM_ARRANGE 设置windows如何排列最小化窗口的一个标志。参考api32.txt中的ARW常数 
    SM_CLEANBOOT 指定启动模式。0=普通模式;1=带网络支持的安全模式 
    SM_CMETRICS 可用系统环境的数量 
    SM_CMOUSEBUTTON 鼠标按钮(按键)的数量。如没有鼠标,就为零 
    SM_CXBORDER, SM_CYBORDER 尺寸不可变边框的大小 
    SM_CXCURSOR, SM_CYCURSOR 标准指针大小 
    SM_CXDLGFRAME, SM_CYDLGFRAME 对话框边框的大小 
    SM_CXDOUBLECLK, SM_CYDOUBLECLK 双击区域的大小(参考注解) 
    SM_CXFRAME, SM_CYFRAME 尺寸可变边框的大小(在win95和nt 4.0中使用SM_C?FIXEDFRAME) 
    SM_CXFULLSCREEN, SM_CYFULLSCREEN 最大化窗口客户区的大小 
    SM_CXHSCROLL, SM_CYHSCROLL 水平滚动条上的箭头大小 
    SM_CXHTHUMB, SM_CYHTHUMB 滚动块在水平滚动条上的大小 
    SM_CXICON, SM_CYICON 标准图标的大小 
    SM_CXICONSPACING, SM_CYICONSPACING 桌面图标之间的间隔距离。在win95和nt 4.0中是指大图标的间距 
    SM_CXMAXIMIZED, SM_CYMAXIMIZED 最大化窗口的默认尺寸 
    SM_CXMAXTRACK, SM_CYMAXTRACK 改变窗口大小时,最大的轨迹宽度 
    SM_CXMENUCHECK, SM_CYMENUCHECK 菜单复选号位图的大小 
    SM_CXMENUSIZE, SM_CYMENUSIZE 菜单栏上的按钮大小 
    SM_CXMIN, SM_CYMIN 窗口的最小尺寸 
    SM_CXMINIMIZED, SM_CYMINIMIZED 最小化的窗口必须填充进去的一个矩形小于或等于SM_C?ICONSPACING 
    SM_CXMINTRACK, SM_CYMINTRACK 窗口的最小轨迹宽度 
    SM_CXSCREEN, SM_CYSCREEN 屏幕大小 
    SM_CXSIZE, SM_CYSIZE 标题栏位图的大小 
    SM_CXSIZEFRAME, SM_CYSIZEFRAME 具有WS_THICKFRAME样式的窗口的大小 
    SM_CXSMICON, SM_CYSMICON 小图标的大小 
    SM_CXSMSIZE, SM_CYSMSIZE 小标题按钮的大小 
    SM_CXVSCROLL, SM_CYVSCROLL 垂直滚动条中的箭头按钮的大小 
    SM_CYCAPTION 窗口标题的高度 
    SM_CYKANJIWINDOW Kanji窗口的大小(Height of Kanji window) 
    SM_CYMENU 菜单高度 
    SM_CYSMCAPTION 小标题的高度 
    SM_CYVTHUMB 垂直滚动条上滚动块的高度 
    SM_DBCSENABLED 如支持双字节则为TRUE 
    SM_DEBUG 如windows的调试版正在运行,则为TRUE 
    SM_MENUDROPALIGNMENT 如弹出式菜单对齐菜单栏项目的左侧,则为零 
    SM_MIDEASTENABLED 允许了希伯来和阿拉伯语 
    SM_MOUSEPRESENT 如安装了鼠标则为TRUE 
    SM_MOUSEWHEELPRESENT 如安装了带轮鼠标则为TRUE;只适用于nt 4.0 
    SM_NETWORK 如安装了网络,则设置位0。其他位保留未用 
    SM_PENWINDOWS 如装载了支持笔窗口的DLL,则表示笔窗口的句柄 
    SM_SECURE 如安装了安全(保密)机制,则为TRUE 
    SM_SHOWSOUNDS 强制视觉提示播放声音 
    SM_SLOWMACHINE 系统速度太慢,但仍在运行中(System is too slow for effective use but is being run anyway) 
    SM_SWAPBUTTON 如左右鼠标键已经交换,则为TRUE 
    注解 
    双击区域指定屏幕上一个特定的显示区域,只有在这个区域内连续进行两次鼠标单击,才有可能被当作双击事件处理 
    其他 
    常数 SM_ARRANGE, SM_CLEANBOOT, SM_CMETRICS, SM_C?MAXIMIZED, SM_C?MAXTRACK, SM_C?SIZEFRAME, SM_C?SMICON, SM_C?SMSIZE, SM_CYSMCAPTION, SM_SECURE, SM_SHOWSOUNDS, and SM_SLOWMACHINE 未获 NT 3.51 及更早版本的支持 Top
     
      

  8.   

    to tjm:
    当然可以!
    Private Const SM_CMETRICS = 44
    Private Const SM_CMOUSEBUTTONS = 43
    Private Const SM_CXBORDER = 5
    Private Const SM_CXCURSOR = 13
    Private Const SM_CXDLGFRAME = 7
    Private Const SM_CXDOUBLECLK = 36
    Private Const SM_CXFIXEDFRAME = SM_CXDLGFRAME 
    Private Const SM_CXFRAME = 32
    Private Const SM_CXFULLSCREEN = 16
    Private Const SM_CXHSCROLL = 21
    Private Const SM_CXHTHUMB = 10
    Private Const SM_CXICON = 11
    Private Const SM_CXICONSPACING = 38
    Private Const SM_CXMIN = 28
    Private Const SM_CXMINTRACK = 34
    Private Const SM_CXSCREEN = 0
    Private Const SM_CXSIZE = 30
    Private Const SM_CXSIZEFRAME = SM_CXFRAME
    Private Const SM_CXVSCROLL = 2
    Private Const SM_CYBORDER = 6
    Private Const SM_CYCAPTION = 4
    Private Const SM_CYCURSOR = 14
    Private Const SM_CYDLGFRAME = 8
    Private Const SM_CYDOUBLECLK = 37
    Private Const SM_CYFIXEDFRAME = SM_CYDLGFRAME 
    Private Const SM_CYFRAME = 33
    Private Const SM_CYFULLSCREEN = 17
    Private Const SM_CYHSCROLL = 3
    Private Const SM_CYICON = 12
    Private Const SM_CYICONSPACING = 39
    Private Const SM_CYKANJIWINDOW = 18
    Private Const SM_CYMENU = 15
    Private Const SM_CYMIN = 29
    Private Const SM_CYMINTRACK = 35
    Private Const SM_CYSCREEN = 1
    Private Const SM_CYSIZE = 31
    Private Const SM_CYSIZEFRAME = SM_CYFRAME
    Private Const SM_CYVSCROLL = 20
    Private Const SM_CYVTHUMB = 9
    Private Const SM_DBCSENABLED = 42
    Private Const SM_DEBUG = 22
    Private Const SM_MENUDROPALIGNMENT = 40
    Private Const SM_MOUSEPRESENT = 19
    Private Const SM_PENWINDOWS = 41
    Private Const SM_RESERVED1 = 24
    Private Const SM_RESERVED2 = 25
    Private Const SM_RESERVED3 = 26
    Private Const SM_RESERVED4 = 27
    Private Const SM_SWAPBUTTON = 23顺便更正一下,菜单的高度为SM_CYMENU,应为GetSystemMetrics(15),对不起!
      

  9.   

    哦,我正在整理的时候,vbdabster已帮我贴了,晚发送一步!谢谢vbdabster
      

  10.   

    问题解决了,用Scaleheight最简单,NiceFeather and vbdabster 对我帮助最大,
    可惜只有84分。(我以前好象有150分来着,谁偷走了?!)