读书人

vb无标题栏窗口任务栏关闭窗口失效。

发布时间: 2012-01-21 21:31:43 作者: rapoo

vb无标题栏窗口,任务栏关闭窗口失效。在线等,求解决方法。
无标题栏窗体。

用下面的代码生成了任务栏右键菜单

Private Const GWL_STYLE = (-16)
Private Const WS_SYSMENU = &H80000
Private Const WS_MINIMIZEBOX = &H20000


Private Sub Form_Load()
'任务栏操作
Dim lStyle As Long
lStyle = GetWindowLong(Me.hwnd, GWL_STYLE)
lStyle = lStyle Or WS_MINIMIZEBOX Or WS_SYSMENU
SetWindowLong Me.hwnd, GWL_STYLE, lStyle
End Sub



做一个迷你型小窗体,无最大化功能,保留最小化。
在任务栏点击右键可弹出菜单,最小化功能OK,点击关闭无任何反应。

求救,大大腾个手帮帮忙吧!在线等,解决立刻结贴

[解决办法]
翻了一下我写的改键器,还真的失效了,回宿舍研究一下
[解决办法]
为什么我运行你的程序,系统菜单没有任何变化,我的vb出问题了?

VB code
    Dim lStyle As Long, b As Long    lStyle = GetWindowLong(Me.hwnd, GWL_STYLE)    b = Not WS_MINIMIZEBOX    lStyle = lStyle And b'不要最小按钮    b = Not WS_MAXIMIZEBOX    lStyle = lStyle And b'不要组大按钮    'lStyle = lStyle Or WS_MINIMIZEBOX Or WS_SYSMENU    SetWindowLong Me.hwnd, GWL_STYLE, lStyle
[解决办法]
不是很明白楼主的意思。。。
[解决办法]
无标题栏样式的窗口,其默认处理函数已经不再处理任务栏菜单的关闭,调整大小等消息了,所以就算你添加了菜单,点击后也不会有谁响应并作出处理.

因此你需要自己去响应这些消息.

而实现方式比较简单,就是使用子类化去拦截SC_CLOSE消息,并自己触发一个退出事件即可.

我这里有一个例子,你可以直接添加到你的窗体里:

使用自定义窗体时相对完美的窗体效果(VB6.0代码)

这个代码包含了添加菜单,响应菜单点击,处理最大化任务栏高度,处理边框调整大小等.

读书人网 >VB

热点推荐