VBA 里插入的窗体,其属性里没有ShowInTaskBar 选项?
答案:3 悬赏:20 手机版
解决时间 2021-02-23 05:51
- 提问者网友:雾里闻花香
- 2021-02-22 15:11
主要是想让窗体运行的时候,就像打开浏览器一样,在屏幕下边的任务栏里有个图标。但是不知道怎么弄。听说ShowInTaskBar 设置为true就可以。但是又找不到这个属性。MsgBox这个函数运行了,自己就会有,为什么自定义添加的默认就不是呢。
最佳答案
- 五星知识达人网友:纵马山川剑自提
- 2021-02-22 15:47
VBA是嵌入式语言,它的“直属上司”是它的宿主软件如Excel、Word,所以它的窗体是不能绕过它的“上司”直接在系统中表现出来的,所以它是没有ShowInTaskBar属性的,这点跟VB是有本质区别的。而MsgBox则不同,它调用的其实是Windows系统的通用对话框(换句话说就是它跟VBA是没有直接关系的,也可以说这个对话框与VBA的“上司”是同级的),所以它就具有系统级窗体的特性。
全部回答
- 1楼网友:等灯
- 2021-02-22 17:34
可以用下面的代码在任务栏显示,不过效果不是很好,窗体出现后要切换到其他窗口再切回来才会在任务栏显示。这个窗口一般方法找不到句柄,没办法重绘。你可以试试再方法找到它的句柄,找到了应该就可以重绘他了。
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Const WS_EX_APPWINDOW = &H40000
Private Const GWL_EXSTYLE = (-20)
Private Sub UserForm_Activate()
Dim hwnd As Long
Static Flag As Boolean
If Not Flag Then
hwnd = GetForegroundWindow
SetWindowLong hwnd, GWL_EXSTYLE, WS_EX_APPWINDOW
Flag = True
End If
End Sub
- 2楼网友:动情书生
- 2021-02-22 16:11
这是你在windows xp上安装了仿vista系统视察界面的一款软件插件,一般为随xp系统自动启动
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯