一个带有菜单的正常窗体,当双击的时间把窗体的边框去掉跟BorderStyle = 0的那样因为Form1.BorderStyle运行时是只读的
那这个怎样现实,先谢了

解决方案 »

  1.   

    我的意思是
    当最大化的时候不显示标题,菜单,不是最大化窗体是这些都显示
    有点想看片的工具,当按shift+enter显示最大时,只是看片窗口,当再按shift+enter就还原
      

  2.   

    模仿 AcdSee,全屏显示用的是另外一个窗体
      

  3.   

    播放到哪里转到另一个窗体里再接着放有什么不行吗?
    干脆原窗口的菜单栏、边框等都自己做,就用BorderStyle = 0窗口。
      

  4.   

    记得 mci 的播放命令是用一个 hWnd 指定播放窗口,应该很容易将原先的播放关闭后在新的 Form 的 hWnd 上新开一个播放,只需要设定一下时间就可以了
      

  5.   

    因为Form1.BorderStyle运行时是只读的
    ======================
    msdn说的并不一定就是完全正确的
    form的borderstyle在运行时是可以改变的,但并不适用于有菜单的窗体。。
      

  6.   

    哈哈哈,有趣,刚才又试了一下,有菜单的窗体也可以,但就要麻烦点用api:
    用getwindowlong取得窗体的style,然后减去WS_SYSMENU、 WS_CAPTION、 WS_THICKFRAME之类的东西再setwindowlong,你就会得到一个borderstyle=0但有菜单的窗体。
      

  7.   

    lsftest() 
    你能讲明白一点吗
      

  8.   

    整理了一下昨晚的测试代码分两种情况:1.你的窗体没有菜单,下面就可以在运行的时候改变窗体的borderstyle了:
    Private Sub Command1_Click()
    Form1.BorderStyle = 0
    Form1.Caption = "123"
    End SubPrivate Sub Command2_Click()
    Form1.BorderStyle = 1
    Form1.Caption = "456"
    End Sub2.你的窗体有菜单,这时用上面的方法不行,要用api:
    '模块中:
    Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Public Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
    Public Const GWL_STYLE = (-16)
    Public Const WS_CAPTION = &HC00000                  '  WS_BORDER Or WS_DLGFRAME
    Public Const WS_SYSMENU = &H80000
    Public Const WS_THICKFRAME = &H40000'程序中:
    Private Sub Command1_Click()
    Dim dwsty As Long
    dwsty = GetWindowLong(Me.hwnd, GWL_STYLE)
    dwsty = dwsty - WS_SYSMENU - WS_CAPTION - WS_THICKFRAME
    dwsty = SetWindowLong(Me.hwnd, GWL_STYLE, dwsty)
    DrawMenuBar (Me.hwnd)
    End SubPrivate Sub Command2_Click()
    Dim dwsty As Long
    dwsty = GetWindowLong(Me.hwnd, GWL_STYLE)
    dwsty = dwsty Or WS_SYSMENU
    dwsty = dwsty Or WS_CAPTION
    dwsty = dwsty Or WS_THICKFRAME
    dwsty = SetWindowLong(Me.hwnd, GWL_STYLE, dwsty)
    DrawMenuBar (Me.hwnd)
    End Sub这样,你就会得到一个borderstyle=0但却有菜单功能的窗体了。。
    对于你的实际需求,是想borderstyle=0的时候隐藏菜单,这个好办,在把窗体的borderstyle改变的时候先把菜单的visiable设为false就可以了,更狠一点的可以用api整个把它删掉不过,就技术角度来说,我倒觉得一个borderstyle=0但却有菜单功能的窗体更有意思。。xp sp2+vb6 sp5下测试通过。