鏀寔鏁版嵁椤规煡鎵惧姛鑳界殑鏍戞帶鍒(CTreeCtrl)绫
鍙戝竷: 2008-6-26 14:29 | 浣滆: admin | 鏌ョ湅: 62娆
涓嬭浇鏈枃鎵闄勬簮浠g爜
浠g爜杩愯鏁堟灉鍥惧涓嬶細

涓銆佹爲鎺у埗锛圕Tree Control锛
鏍戞帶鍒剁敤浜庢樉绀哄叿鏈変竴瀹氬眰娆$粨鏋勭殑鏁版嵁椤广傚緢澶氬簲鐢ㄧ▼搴忛兘浣跨敤璇ユ帶浠讹紝渚嬪璧勬簮绠$悊鍣ㄤ腑鐨勭鐩樼洰褰曠瓑銆
鏍戞帶鍒朵腑鏈夋牴鏁版嵁椤(root item)锛屾牴鏁版嵁椤逛笅鍖呭惈鍚勪釜瀛愭暟鎹」(child item)銆傛牴鏁版嵁椤规槸鎵鏈夊瓙鏁版嵁椤圭殑鐖朵翰锛岃岃繖浜涘瓙鏁版嵁椤规槸鏍规暟鎹」鐨勫瀛愩
鎵鏈夊瓙鏁版嵁椤逛簰涓哄厔濡癸紙sibling锛夊叧绯汇傛瘡涓暟鎹」鍖呮嫭鏁版嵁椤瑰悕绉帮紙鏂囨湰瀛楃涓诧級鍜岀敤浜庤〃绀鸿鏁版嵁椤圭殑鍥惧儚锛屾瘡涓暟鎹」涓嬭繕鍙互鍖呭惈瀛愰」锛屾暣涓粨鏋勫氨璞′竴妫垫爲銆
浜屻佷娇鐢ㄦ爲鎺у埗
鍦∕FC涓紝鏍戞帶鍒惰灏佽鎴怌TreeCtrl绫汇備笅闈㈡垜浠皥璋堟爲鎺у埗鐨勫垱寤恒佸睘鎬у拰鎿嶄綔鏂规硶銆
锛1锛 鏍戞帶鍒剁殑鍒涘缓
鏍戞帶鍒朵竴鑸敤浜庡璇濇绋嬪簭銆傚垱寤烘爲鎺у埗鏈変袱绉嶆柟娉曪紝涓绉嶆槸闈欐佸垱寤猴紝涓绉嶆槸鍔ㄦ佸垱寤恒傞潤鎬佸垱寤烘槸鎸囨嫋鏀炬帶浠跺悗澹版槑涓庝箣鐩稿叧鐨勬垚鍛樺彉閲忔潵鎿嶄綔鏍戞帶鍒躲傚湪瀵硅瘽妗嗙▼搴忕晫闈笂鎷栨斁涓涓狢TreeCtrl鎺т欢锛岀劧鍚庨氳繃ClassWizard娣诲姞涓涓狢TreeCtrl绫诲瀷鐨勬垚鍛樺彉閲忓苟鍦ㄧ▼搴忎腑浣跨敤瀹冦傚姩鎬佸垱寤烘槸鎸囧湪绋嬪簭涓娇鐢–reate鍑芥暟鍒涘缓鏍戞帶鍒跺璞°傛湰鏂囦緥瀛愰噰鐢ㄩ潤鎬佸垱寤虹殑鏂规硶銆
锛2锛 鏍戞帶鍒剁殑灞炴
鏍戞帶鍒舵湁寰堝灞炴ф搷浣滃嚱鏁般備娇鐢ㄨ繖浜涘嚱鏁板彲浠ュ緱鍒版爲鎺у埗鐨勫悇绉嶅睘鎬т俊鎭備緥濡傦細鍙栧緱鏍戞帶鍒朵腑椤规暟GetCount銆佸彇寰楁爲鎺у埗涓」鐩稿浜庣埗椤圭殑鍋忕Щ鍊
GetIndent銆佸彇寰楁爲鎺у埗鍥惧儚鍒楄〃鎺у埗鍙ユ焺GetImageList绛夈傚叿浣撲俊鎭彲浠ユ煡鐪婱SDN甯姪銆
锛3锛 鏁版帶鍒剁殑鎿嶄綔
鏍戞帶鍒剁殑鎿嶄綔鏂规硶鍖呮嫭鎻掑叆涓涓爲椤笽nsertItem銆佸垹闄や竴涓爲椤笵eleteItem銆佸垹闄
鎵鏈夋爲椤笵eleteAllItems銆佸睍寮鎴栧悎鎷㈡爲椤圭殑瀛愰」Expand銆侀変腑鐗瑰畾鏍戦」
SelectItem銆侀夋嫨涓涓爲椤逛綔涓虹涓涓彲瑙嗘爲椤筍electSetFirstVisible銆佺紪杈戜竴涓彲
瑙嗙殑鏍戦」EditLabel鍜屾帓搴忕粰瀹氱埗鏍戦」鐨勫瓙鏍戦」SortChildren绛夈
涓夈佽鏍戞帶鍒舵敮鎸佹暟鎹」鏌ユ壘鍔熻兘
鍦ㄦ湁浜涘満鍚堜笅鐢ㄦ埛闇瑕佸湪鏍戞帶鍒朵腑娣诲姞鏂扮殑鏁版嵁椤广傛柊娣诲姞鐨勬暟鎹」鍙兘鍜屽凡鏈夌殑鏌愭暟鎹」鍚嶇О閲嶅銆備负閬垮厤杩欑鎯呭喌锛屾垜浠渶瑕佷竴涓嚱鏁板畠鑳藉鍦ㄦ坊鍔
鏂版暟鎹」涔嬪墠鍏堟鏌ユ墍鏈夌殑鏁版嵁椤癸紝濡傛灉鏌ュ埌鍖呭惈鏂版坊鍔犳暟鎹」鍚嶇О鐨勬暟鎹」宸插瓨鍦紝鍙互鍚戠敤鎴锋彁绀鸿淇℃伅銆備娇鐢ㄩ掑綊鏂规硶鏉ュ疄鐜拌鍑芥暟鐩稿绠鍗曘
涓嬮潰鏄鍑芥暟鐨勫師鍨嬨佸弬鏁板強浠g爜銆
/****************************************************
*
* 鍚嶇О锛欶indItem
*
* 鍔熻兘锛氬湪鏍戞帶鍒朵腑鏍规嵁鏁版嵁椤瑰悕绉版煡鎵炬暟鎹」
*
* 鍙傛暟锛歩tem - 瑕佹煡璇㈢殑鏁版嵁椤瑰強鍏跺瓙鏁版嵁椤
*
* strText - 瑕佹煡璇㈢殑鏁版嵁椤瑰悕绉
*
* 杩斿洖鍊硷細NULL - 娌℃壘鍒
*
* (闈炵┖鐨凥TREE99vEM ) - 鎵惧埌
*
**************************************************/
HTREE99vEM CTreeCtrlEx::FindItem(HTREE99vEM item, CString strText)
{
HTREE99vEM hFind;
if(item == NULL)
return NULL;
while(item!=NULL)
{
if(GetItemText(item) == strText)
return item;
if(ItemHasChildren(item))
{
item = GetChildItem(item);
hFind = FindItem(item,strText);
if(hFind)
{
return hFind;
}
else
{
item= GetNextSiblingItem(GetParentItem(item));
}
}
else
{
item = GetNextSiblingItem(item);
if(item==NULL)
return NULL;
}
}
return item;
}鍥涖佺ず渚嬬▼搴
鎴戜滑鍒涘缓涓涓璇濇绋嬪簭銆
锛1锛 閫氳繃鈥淔ILE->NEW->PROJECTS->MFC AppWizard(EXE)鈥濆缓绔嬪悕涓篗yTreeCtr鐨
宸ョ▼锛屽湪寤虹珛杩囩▼涓夋嫨鍩轰簬瀵硅瘽妗嗭紙Dialog based锛夌殑搴旂敤锛
锛2锛 灏嗗璇濇涓殑榛樿鎸夐挳鎺т欢鈥滅‘瀹氣濆垹闄わ紝骞跺皢鎵鏈夊璇濇灞炴т腑鐨凩anguage鍩熻缃负Chinese(P.R.C.)锛屼互浣垮簲鐢ㄧ▼搴忔敮鎸佷腑鏂囷紱鍦ㄥ璇濇绐楀彛涓
娣诲姞鏍戞帶鍒跺璞★紙TREE CONTROL锛夛紝骞惰缃竴涓寜閽滄柊寤烘暟鎹」鈥濓紝鍏跺搴旀爣璇嗗垎鍒涓嬶細




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











