Author:水如烟
现在来实现“收藏夹”菜单的功能。
这里可能要三篇来说。
先从简单的做起,“整理收藏夹”。
代码简单,
Private Declare Function DoOrganizeFavDlg Lib "shdocvw" (ByVal hWnd As IntPtr , ByVal lpszRootFolder As String) As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
DoOrganizeFavDlg(Me.Handle, System.Environment.GetFolderPath(Environment.SpecialFolder.Favorites))
End Sub
示图:
其实DoOrganizeFavDlg可以接受任一有效文件夹,比如,
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
DoOrganizeFavDlg(Me.Handle, "C:/")
End Sub
示图:
注意标题,它还是“整理收藏夹”。可以通过User32.dll的SetWindowTextA,这部分代码我不列出来了,只可惜那个图标我改不了。
示图:
整理一下这部分代码:
Public Class OrganizeFolderDialog
Private Sub New()
End Sub
Private Declare Function DoOrganizeFavDlg Lib "shdocvw" (ByVal hWnd As IntPtr, ByVal lpszRootFolder As String) As Integer
Public Shared Sub Show(ByVal hWnd As IntPtr, ByVal folder As String)
DoOrganizeFavDlg(hWnd, folder)
End Sub
Public Shared Sub Show(ByVal hWnd As IntPtr, ByVal specialfolder As System.Environment.SpecialFolder)
Show(hWnd, System.Environment.GetFolderPath(specialfolder))
End Sub
End Class