首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

无边框窗体的关闭有关问题,

2012-03-22 
求助: 无边框窗体的关闭问题,在线等!把form1的borderstyle设置为none,同时设置ShowInTaskbar为True这样子

求助: 无边框窗体的关闭问题,在线等!
把   form1   的   borderstyle   设置为   none     ,同时设置   ShowInTaskbar   为   True

这样子的话在状态栏上鼠标右键就没用了。

于是我加上如下代码   :

      Private   Declare   Function   GetWindowLong   Lib   "user32 "   Alias   "GetWindowLongA "   (ByVal   hwnd   As   Long,   ByVal   nIndex   As   Long)   As   Long
Private   Declare   Function   SetWindowLong   Lib   "user32 "   Alias   "SetWindowLongA "   (ByVal   hwnd   As   Long,   ByVal   nIndex   As   Long,   ByVal   dwNewLong   As   Long)   As   Long
Private   Const   WS_SYSMENU   =   &H80000

Private   Const   GWL_STYLE   =   (-16)


Private   Sub   Form_Load()
        Dim   TempLng   As   Long
       
        TempLng   =   GetWindowLong(Me.hwnd,   GWL_STYLE)
        TempLng   =   TempLng   Or   WS_SYSMENU   '系统菜单
        SetWindowLong   Me.hwnd,   GWL_STYLE,   TempLng
       
End   Sub

  于是再在   任务栏点鼠标右键,出现了   “关闭”、“移动”之类的可用菜单,但点了后没的反应啊。
  请问要怎样才能使这的“关闭”菜单起作用

[解决办法]
这个问题我解决不了! 应该是代码的问题

只是给程序可以弹出那个对话框 代码没写
或者捕获不到hwnd
[解决办法]
borderstyle 用正常的值,然后将边框标题隐藏起来

Private Sub Form_Load()
Dim TempLng As Long

TempLng = GetWindowLong(Me.hwnd, GWL_STYLE)
TempLng = TempLng And (Not WS_BORDER) And (Not WS_CAPTION)
SetWindowLong Me.hwnd, GWL_STYLE, TempLng
Me.Width = Me.Width + Screen.TwipsPerPixelX ' <-改变窗体大小已重新计算绘制窗体
End Sub

热点排行