读书人

请教怎么将一个控件的父窗口设为桌面

发布时间: 2012-12-16 12:02:32 作者: rapoo

请问如何将一个控件的父窗口设为桌面
在vb.net中可以用下面的代码将一个控件设置为另一个控件的子控件
PictureBox1.Parent = PictureBox2.Parent

但是如果是要将其设置为桌面窗口的子控件应该桌面做呢?

PictureBox1.Parent =???
[最优解释]
[DllImport("user32.dll")]
public extern static IntPtr SetParent(IntPtr hChild, IntPtr hParent);
[其他解释]
这个API我也试过了 没反应

引用:
[DllImport("user32.dll")]
public extern static IntPtr SetParent(IntPtr hChild, IntPtr hParent);

[其他解释]
额 重写了一遍 又有反应了 看来还是用api把 谢谢:)
[其他解释]
楼上正解

Private Declare Function GetDesktopWindow Lib "user32.dll" () As IntPtr
Private Declare Function SetParent Lib "user32.dll" (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As Int32


Dim hdesk As IntPtr = GetDesktopWindow
Dim ret As Int32 = SetParent(PictureBox1.Handle, hdesk)



本来以为可以把桌面直接转为控件,结果不行。想想也是桌面怎么说也不是net框架中的控件
Dim ctl As Control = Control.FromHandle(GetDesktopWindow)
If ctl IsNot Nothing Then
PictureBox1.Parent = ctl
End If

读书人网 >VB Dotnet

热点推荐