VC鎺т欢 TreeCtrl 涓 ListCtrl 婕旂ず
鍙戝竷: 2008-6-26 14:30 | 浣滆: admin | 鏌ョ湅: 552娆
涓嬭浇鏈枃鎵闄勬簮浠g爜
杩欎釜渚嬪瓙绫讳技浜 Windows 鐨勮祫婧愮鐞嗗櫒,绋嬪簭杩愯鐣岄潰濡傚浘涓鎵绀猴細

鍥句竴
涓昏鐢ㄥ埌鐨勭被鏈夛細
CListCtrl,CTreeCtrl,CImageList,CFileFind 鍜屽嚱鏁癝HGetFileInfo()
绠杩版楠ゅ涓嬶細
1銆佸鍔 TreeCtrl 鐨 TVS_HASBUTTONS锛孴VS_HASLINES銆乀VS_LINESATROOT Style锛屼唬鐮佸涓嬶細
DWORD dwStyle = GetWindowLong(m_tree.m_hWnd,GWL_STYLE);
dwStyle |= TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT;
SetWindowLong(m_tree.m_hWnd,GWL_STYLE,dwStyle);
2銆佷负TreeCtrl娣诲姞Root椤癸細
m_hRoot = m_tree.InsertItem("鎴戠殑鐢佃剳");
InsertItem()鐨勫嚱鏁板師褰负
HTREE99vEM InsertItem( LPCTSTR lpszItem, HTREE99vEM hParent = TVI_ROOT,
HTREE99vEM hInsertAfter = TVI_LAST );
3銆佽幏鍙栨湰鍦伴昏緫椹卞姩鍣,骞舵坊鍔狅細
void CTreeViewDlg::GetLogicalDrives(HTREE99vEM hParent)
{
size_t szAllDriveStrings = GetLogicalDriveStrings(0,NULL);
char *pDriveStrings = new char[szAllDriveStrings + sizeof(_T(""))];
GetLogicalDriveStrings(szAllDriveStrings,pDriveStrings);
size_t szDriveString = strlen(pDriveStrings);
while(szDriveString > 0)
{
m_tree.InsertItem(pDriveStrings,hParent);
pDriveStrings += szDriveString + 1;
szDriveString = strlen(pDriveStrings);
}
}
4銆佹坊鍔燭VN_EXPANDED娑堟伅澶勭悊鍑芥暟,褰撲竴椤瑰睍寮鏃,涓哄叾瀛愰」娣诲姞涓嬩竴绾х洰褰曪細
void CTreeViewDlg::OnItemexpandedTree(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
TV99vEM item = pNMTreeView->itemNew;
if(item.hItem == m_hRoot)
return;
HTREE99vEM hChild = m_tree.GetChildItem(item.hItem);
while(hChild)
{
AddSubDir(hChild);
hChild = m_tree.GetNextItem(hChild,TVGN_NEXT);
}
*pResult = 0;
}
AddSubDir鍑芥暟鍔熻兘娣诲姞瀛愰」,鍏蜂綋浠g爜瑙佺ず渚嬨
5銆佹坊鍔燭VN_SELCHANGED娑堟伅澶勭悊鍑芥暟,鍦ㄨ繖涓嚱鏁伴噷,鐢℅etFullPath()鍙栧緱閫変腑椤圭殑缁 璺緞(GetFullPath()鍏蜂綋浠g爜鐪嬬ず渚),鍦↙istCtrl涓坊鍔犳枃浠惰岄潪鏂囦欢澶圭殑鍥炬爣锛




发表于 2009-1-5 19:48
| 











