有什么办法可以去掉这个窗口在任务栏上的图标呢?
(winForm vb2005)
如下面的代码,用SetParent 函数可以把一个自定义控件添加到 桌面 上,但此,此自定义控件会在任务栏上显示一个图标,请问,有什么办法可以让它不显示 任务栏图标呢?谢谢了!
Public Class Form1
Public Declare Function SetParent Lib "user32 " (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim u As New UserControl
u.BackColor = Color.Red
Form1.SetParent(u.Handle, Nothing)
End Sub
------解决方案--------------------const int GWL_EXSTYLE = -20;
const int WS_EX_TOOLWINDOW = 0x80;
SetWindowLong(u.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW | GetWindowLong(u.Handle, GWL_EXSTYLE));
SetParent(u.Handle, IntPtr.Zero);
注意SetWindowLong在SetParent之前。
另外提醒一下 楼主这种作法并没有把UserControl放到了桌面上 而且可能会有其他的不良副作用。
想用不夺取焦点的下拉框窗口应该用这种方式:
创建一个窗口,设置ShowInTaskbar及边框外观等属性,
override 属性ShowWithoutActivation 并返回true (.NET 2.0)
如果是.NET 1.X 用ShowWindow + SHOWNA 或者 SetWindowPos + SWP_NOACTIVATE|SWP_SHOWWINDOW来显示窗口