CNetworkTreeCtrl
By Paolo MessinaCNetworkTreeCtrl
This is just an example of a content provider class (see the article CWaitingTreeCtrl), which overrides the PopulateItem
virtual function to show network resources only when the user wants to access them.
You may specify the network resource to be used as the root of the tree control, as well as what kind of resources to be shown in the last level. You may also get specific information about the network resource associated with an existing item. To communicate with the class you can use the standard NETRESOURCE
structure and related flags.
User interface features are those offered by the base class and can be further personalized with custom animations.
Class Reference
CNetworkTreeCtrl::RefreshNetworkRoot

BOOL RefreshNetworkRoot(LPNETRESOURCE pRoot, DWORD dwStopAtDisplayType =
RESOURCEDISPLAYTYPE_GENERIC)
It associates a network resource with the root item and refreshes the tree items in the first level. It also sets what kind of container resources must not be further enumerated.
The first argument pRoot
is the address of the network resource you want as the root of the tree control. A value of NULL
means the network root.
The dwStopAtDisplayType
argument could take the same values as the dwDisplayType
field of the NETRESOURCE
structure. It specifies the last level of network resources that will be visible in the tree control.
The return value is TRUE
if you specified a valid resource, FALSE
otherwise.
CNetworkTreeCtrl::GetItemResource

BOOL GetItemResource(HTREEITEM hItem, LPNETRESOURCE pNr)
It retrieves the network resource associated to the specified item. If successful, the return value is TRUE
and the structure pointed by pNr
contains valid data, otherwise the return value is FALSE
.
Updates
[ Today ]
- Initial public release.
Conclusion
Please note that this class is not fully functional. So far, it can be used only in a dialog, but I will work on it when I have more time. I released this version to provide an example of a content provider for my CWaitingTreeCtrl
class (see the article).
Any help or suggestion would be greatly appreciated. I plan to use this control in a new version of our NetSend utility, see this. Also, the latest beta releases of this class could be found here, for test only purpose.
License
This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.
A list of licenses authors might use can be found here
About the Author
Paolo Messina![]() | Paolo began programming at the age of 9 with a glorious 8086 and GW-BASIC, then he played a bit with C, ASM and Pascal. He tought himself MFC and Windows programming, to exploit his studies of C++. Always attracted by low-level programming and Assembly, he's beginning to appreciate the joys of templates and STL. He lives in Follonica, Italy. He has been abroad in the U.S. to work on his final thesis before graduating. For seven months he was playing with airplanes and automatic control at the Unversity of Illinois at Urbana-Champaign. He graduated in Computer Science Engineering at the University of Pisa, Italy, in December 2003. Currently working for an edutainment robotics company (www.robotechsrl.com).
|
From: http://www.codeproject.com/KB/tree/networktreectrl.aspx