锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 銆銆鐩綍 銆銆綆浠? 銆銆姒傝堪 銆銆姝ラ 1錛氳嚜瀹氫箟寮鍙戠幆澧? 銆銆姝ラ 2錛氭墦寮浠g爜欏圭洰浠ュ疄鏂介嗗悜宸ョ▼ 銆銆姝ラ 3錛氶夋嫨鈥滈嗗悜宸ョ▼鈥?Reverse Engineer) 鎸夐挳 銆銆姝ラ 4錛氬湪 Visio UML 妯″瀷鍥捐〃瑙e喅鏂規涓垱寤烘偍鐨?UML 鍥捐〃 銆銆綆浠? Microsoft Visio 2000 Enterprise Edition 鍜?Professional Edition 閮藉寘鍚氳繃閫嗗悜宸ョ▼灝嗕唬鐮佽漿鎹負 UML 闈欐佺粨鏋勫浘琛ㄧ殑瑙e喅鏂規銆傝瑙e喅鏂規鏀寔涓夌璇█錛歁icrosoft Visual C++ 6.0銆丮icrosoft Visual Basic 6.0 鍜?Microsoft Visual J++ 6.0銆俈isio UML 妯″瀷鍥捐〃瑙e喅鏂規鎵閲囩敤鐨?UML 鏍囧噯涓?1.2 鐗堛? 銆銆姣忕璇█浣跨敤鐨勯嗗悜宸ョ▼鎶鏈悇涓嶇浉鍚屻傚浜?J++ 鍜?Visual Basic錛岃瑙e喅鏂規浣跨敤寮鍙戠幆澧冪殑瀵硅薄妯″瀷鏉ユ敹闆嗛潤鎬佺粨鏋勪俊鎭傚浜?C++錛岃瑙e喅鏂規灝嗘祻瑙堜俊鎭枃浠?(.BSC) 鐢ㄤ綔緇撴瀯淇℃伅鐨勬潵婧愩傝櫧鐒?Visual Basic 鍜?J++ 閫嗗悜宸ョ▼閮戒嬌鐢ㄥ紑鍙戠幆澧冪殑瀵硅薄妯″瀷錛屼絾 J++ 瀵硅薄妯″瀷鎻愪緵浜嗘洿瀹屾暣鐨勪俊鎭紝鍥犳鍙緱鍒版洿瀹屾暣鐨勯嗗悜宸ョ▼ UML 妯″瀷銆侰++ 涓殑嫻忚淇℃伅鏂囦歡鍖呭惈鏈灝戠殑淇℃伅;鍥犳錛屽畠鎵鐢熸垚鐨?UML 妯″瀷涓嶅 J++ 鍜?Visual Basic 閫嗗悜宸ョ▼寰楀埌鐨?UML 妯″瀷閭d箞瀹屾暣銆? 銆銆鏈枃灝嗕粙緇嶉氳繃閫嗗悜宸ョ▼杞崲鍒?Visio UML 妯″瀷鍥捐〃瑙e喅鏂規鎵闇鐨勬楠ゃ? 銆銆娉ㄦ剰錛歏isio UML 妯″瀷鍥捐〃瑙e喅鏂規鍙敮鎸?Microsoft Visual C++ 6.0銆丮icrosoft Visual J++ 6.0 鍜?Microsoft Visual Basic 6.0 鐨勯嗗悜宸ョ▼銆傝浣跨敤 Visio UML 澶栨帴紼嬪簭錛屽繀欏誨畨瑁?Service Pack 3.0 for Microsoft? Visual Studio?銆? 銆銆姒傝堪 銆銆瑕侀氳繃閫嗗悜宸ョ▼灝嗘偍鐨勪唬鐮佽漿鎹㈠埌 Visio UML 妯″瀷鍥捐〃瑙e喅鏂規錛屽簲鎵ц浠ヤ笅涓昏姝ラ錛? 銆銆鑷畾涔?Visual Studio 寮鍙戠幆澧? 銆銆鍦?Visual Studio 涓墦寮欏圭洰浠ュ疄鏂介嗗悜宸ョ▼ 銆銆浠庘淰isio UML 澶栨帴紼嬪簭鈥?Visio UML Add-In) 宸ュ叿鏍忎腑閫夋嫨鈥滈嗗悜宸ョ▼鈥?Reverse Engineer) 鎸夐挳 銆銆鍦?Visio UML 妯″瀷鍥捐〃瑙e喅鏂規涓垱寤?UML 綾誨浘琛? 銆銆鏈枃鐨勫叾浣欓儴鍒嗘彁渚涗簡姣忎釜姝ラ鐨勮緇嗘寚瀵鹼紝騫跺寘鎷壒瀹氫簬緙栫▼璇█鐨勪俊鎭備緥濡傦紝鍦ㄨ嚜瀹氫箟寮鍙戠幆澧冮儴鍒嗭紝Visual C++銆乂isual Basic 鍜?Visual J++ 閮芥湁鍏剁浉搴旂殑绔犺妭銆? 銆銆姝ラ 1錛氳嚜瀹氫箟寮鍙戠幆澧? 銆銆涓轟簡瀹炴柦閫嗗悜宸ョ▼錛岀涓姝ュ簲閫氳繃娣誨姞鈥淰isio UML 澶栨帴紼嬪簭鈥?Visio UML Add-In) 宸ュ叿鏍忔潵鑷畾涔夊紑鍙戠幆澧冦備互涓嬫寚瀵兼樉紺轟簡濡備綍灝嗚宸ュ叿鏍忔坊鍔犲埌 Visual C++銆乂isual Basic 鍜?Visual J++ 鐨勪笉鍚岀幆澧冧腑銆? 銆銆鑷畾涔?Microsoft Visual C++ 6.0 銆銆鍦?Visual C++ 涓紝閫夋嫨 Tools 鑿滃崟涓婄殑 Customize銆? 銆銆鍦?Customize 瀵硅瘽妗嗕腑錛岄夋嫨 Add-ins and Macro Files 閫夐」鍗°? 銆銆鍦?Add-ins and Macro Files 鍒楄〃涓紝閫夋嫨澶栨帴紼嬪簭鍜屽畯鏂囦歡鍒楄〃涓殑 Visio UML Add-in銆傜‘淇濇梺杈圭殑澶嶉夋琚変腑錛岀劧鍚庡崟鍑?Close銆? 銆銆鍑虹幇嫻姩鐨?Visio UML Add-in 宸ュ叿鏍忥紝鍏朵腑鍖呭惈浜斾釜鎸夐挳銆? 銆銆鎻愮ず錛氬鏋滃笇鏈涜宸ュ叿鏍忓湪姣忔鎵撳紑 Microsoft Visual Studio 鏃墮兘鍙敤錛屽彲閫氳繃鎷栧姩灝嗚宸ュ叿鏍忛潬鎺ュ埌宸ュ叿鏍忓尯銆? 銆銆鑷畾涔?Microsoft Visual Basic 6.0 銆銆鍦?Visual Basic 涓紝浠庘滃鎺ョ▼搴忊濊彍鍗曚腑閫夋嫨鈥滃鎺ョ▼搴忕鐞嗗櫒鈥濄? 銆銆鍦ㄢ滃鎺ョ▼搴忕鐞嗗櫒鈥濆璇濇涓紝閫夋嫨鈥滃彲鐢ㄧ殑澶栨帴紼嬪簭鈥濆垪琛ㄤ腑鐨勨淰isio UML Add-in鈥濄傚浜庘滃姞杞借涓衡濓紝閫夋嫨鈥滃姞杞?鍗歌澆鈥濆拰鈥滃湪鍚姩涓姞杞解濓紝鐒跺悗鍗曞嚮鈥滅‘瀹氣濄? 銆銆鍑虹幇甯︽湁鍥涗釜鎸夐挳鐨勨淰isio UML 澶栨帴紼嬪簭鈥濆伐鍏鋒爮銆? 銆銆鎻愮ず錛歏isio UML 澶栨帴紼嬪簭鍦ㄥ垱寤哄伐鍏鋒爮鏃訛紝榪樹細鍚戔滃伐鍏封濊彍鍗曚腑娣誨姞鍛戒護銆傛偍鍙互閫氳繃浠庘淰isio UML 瑙e喅鏂規鈥濅腑閫夋嫨鈥滃伐鍏封濇潵鎵懼埌榪欎簺鍛戒護銆? 銆銆鑷畾涔?Microsoft Visual J++ 6.0 銆銆鍦?Visual J++ 涓紝閫夋嫨 Tools 鑿滃崟涓婄殑 Add-In Manager銆? 銆銆鍦?Add-In Manager 瀵硅瘽妗嗕腑錛岄夋嫨 Available Add-Ins 鍒楄〃涓殑 Visio UML Solution銆傚浜?Load Behavior錛岄変腑 Loaded/Unloaded 鍜?Load On Startup錛岀劧鍚庡崟鍑?OK銆? 銆銆鍑虹幇甯︽湁鍥涗釜鎸夐挳鐨?Visio UML Add-in 宸ュ叿鏍忋? 銆銆鎻愮ず錛歏isio UML Add-in 鍦ㄥ垱寤哄伐鍏鋒爮鏃訛紝榪樹細鍚?Tools 鑿滃崟涓坊鍔犲懡浠ゃ傛偍鍙互閫氳繃浠?Tools 鑿滃崟閫夋嫨 Visio UML Solution 鏉ユ壘鍒拌繖浜涘懡浠ゃ? 銆銆姝ラ 2錛氭墦寮浠g爜欏圭洰浠ュ疄鏂介嗗悜宸ョ▼ 銆銆閫嗗悜宸ョ▼榪囩▼浠庢墍鏈夎繖涓夌璇█鐨勫紑鍙戠幆澧冧腑寮濮嬨傚綋閫氳繃娣誨姞鈥淰isio UML 澶栨帴紼嬪簭鈥?Visio UML Add-in) 鑷畾涔夌幆澧冨悗錛屼笅涓姝ユ槸鎵撳紑瑕佸疄鏂介嗗悜宸ョ▼鐨勯」鐩? Visual C++ 6.0 鐨勯檮鍔犳楠? 銆銆瀵逛簬 Visual C++錛屽湪寮濮嬮嗗悜宸ョ▼涔嬪墠錛岃繕蹇呴』鎵ц鍑犱釜闄勫姞姝ラ銆傜涓姝ユ槸鐢熸垚欏圭洰鐨勬祻瑙堜俊鎭枃浠?(.BSC)銆備互涓嬫彁渚涗簡鐢熸垚嫻忚鏂囦歡鐨勬寚瀵箋傜浜屾鏄‘瀹氶嗗悜宸ョ▼涓鍖呭惈鐨勪唬鐮佸簱銆傝緗繖浜涢夐」鐨勬寚瀵煎皢鍦ㄦ祻瑙堟枃浠舵寚瀵間箣鍚庢彁渚涖傛渶鍚庯紝搴斿湪瀹炴柦閫嗗悜宸ョ▼涔嬪墠鏋勫緩欏圭洰銆? 銆銆鐢熸垚 Visual C++ 6.0 鐨勬祻瑙堜俊鎭枃浠? 銆銆鍦?Visual C++ 涓紝閫夋嫨 Project 鑿滃崟涓婄殑 Settings銆? 銆銆鍦?Project Settings 瀵硅瘽妗嗕腑閫夋嫨鎵闇鏋勫緩閰嶇疆鐨勭被鍨嬶紝鍗曞嚮 C/C++ 閫夐」鍗★紝鐒跺悗閫変腑 Generate browse info銆? 銆銆鍗曞嚮 Browse Info 閫夐」鍗★紝鎸囧畾嫻忚淇℃伅鏂囦歡鐨勫悕縐板拰浣嶇疆錛岄変腑 Build browse info file錛岀劧鍚庡崟鍑?OK銆? 銆銆閫夋嫨 Visual C++ 6.0 閫嗗悜宸ョ▼鎵鍖呭惈鐨勫簱 銆銆鍗曞嚮 UML Add-in 宸ュ叿鏍忎笂鐨?Visio UML Options 鎸夐挳錛岃緗?Visual C++ 閫嗗悜宸ョ▼鎵鍖呭惈鐨勫簱銆? 銆銆姝ゆ椂鏄劇ず Visio UML Options 灞忓箷銆傚鏋滃笇鏈涘湪閫嗗悜宸ョ▼涓寘鍚?MFC Classes銆丄TL Classes 鎴?Standard Include Files 鐨勪俊鎭紝鍙渶閫変腑鎵闇閫夐」鏃佽竟鐨勫閫夋錛岀劧鍚庡崟鍑?OK銆? 銆銆姝ラ 3錛氫粠鈥淰isio UML 澶栨帴紼嬪簭鈥?Visio UML Add-In) 宸ュ叿鏍忛夋嫨鈥滈嗗悜宸ョ▼鈥?Reverse Engineer) 鎸夐挳 銆銆閫嗗悜宸ョ▼鐨勪笅涓姝ユ槸浠庘淯ML 澶栨帴紼嬪簭鈥?Visio UML Add-In) 宸ュ叿鏍忛夋嫨鈥滈嗗悜宸ョ▼鈥?Reverse Engineer) 鎸夐挳銆? 銆銆瀵逛簬 Visual Basic 鍜?Visual J++錛屾鎿嶄綔灝嗗湪 Visio 2000 涓墦寮 UML 妯″瀷鍥捐〃瑙e喅鏂規錛屽叾涓細鏄劇ず閫氳繃閫嗗悜宸ョ▼杞崲涓烘ā鍨嬬殑淇℃伅銆傛鏃?UML 妯″瀷鍥捐〃瑙e喅鏂規鎵撳紑錛屽茍鍦ㄢ淯ML 瀵艱埅鍣ㄢ濅腑鏄劇ず涓涓┖鐧界殑闈欐佺粨鏋勫浘琛ㄥ拰涓涓爲瑙嗗浘錛屽叾涓寘鍚粠欏圭洰涓敹闆嗙殑妯″瀷淇℃伅銆? 銆銆瀵逛簬 Visual C++錛屽湪 Visio 2000 鎵撳紑騫舵樉紺洪氳繃閫嗗悜宸ョ▼杞崲鍒?UML 妯″瀷鍥捐〃瑙e喅鏂規鐨勯」鐩俊鎭箣鍓嶏紝鍙兘浼氭樉紺哄彟澶栦袱涓睆騫曘傚鏋?Visual C++ 宸ヤ綔鍖轟腑瀛樺湪澶氫釜欏圭洰錛屽彲鍦?Select Project 瀵硅瘽妗嗕腑閫夋嫨瑕佸疄鏂介嗗悜宸ョ▼鐨勯」鐩紝鐒跺悗鍗曞嚮 OK銆? 銆銆濡傛灉欏圭洰灞傛緇撴瀯涓樉紺轟簡澶氫釜嫻忚鏂囦歡錛屽彲鍦ㄢ滈夋嫨嫻忚鏂囦歡鈥?Select Browse File) 瀵硅瘽妗嗕腑閫夋嫨涓涓祻瑙堟枃浠訛紝鐒跺悗鍗曞嚮鈥滅‘瀹氣?OK)銆? 銆銆姝ラ 4錛氬湪 Visio UML 妯″瀷鍥捐〃瑙e喅鏂規涓垱寤烘偍鐨?UML 鍥捐〃 銆銆鐜板湪錛孷isio 2000 搴旇鏄劇ず鎮ㄧ殑欏圭洰淇℃伅銆傝鍒涘緩 UML 綾誨浘琛紝璇峰皢妯″瀷鍏冪礌浠庘淯ML 瀵艱埅鍣ㄢ?UML Navigator) 鎷栨斁鍒扳滈潤鎬佺粨鏋勨?Static Structure) 鍥捐〃涓娿傜被鍏崇郴(娉涘寲銆佸疄鐜般佺粦瀹?灝嗕細鑷姩鏄劇ず銆傚埄鐢?Visio UML 妯″瀷鍥捐〃瑙e喅鏂規錛屾偍鍙互鐢熸垚鍏朵粬 UML 宸ヤ歡錛屼互鎸囧畾銆佹瀯閫犺蔣浠墮」鐩茍浣胯蔣浠墮」鐩艦璞″寲鍜屾枃妗e寲銆? 綾諱箣闂寸殑鍏崇郴 緇ф壙鍏崇郴 緇ф壙鍏崇郴鏄渶瀹規槗鐞嗚В鐨勫叧緋匯傜敾鎴愬浘鐨勮瘽灝卞儚涓嬮潰榪欐牱銆傞潰鍚戝璞$殑璇存硶灝辨槸is-a鍏崇郴銆備篃灝辨槸璇碈lass2 is a Class1銆傚湪C++涓垜浠Class2鏄疌lass1鐨勬淳鐢熺被錛屾垨鑰呰Class1鏄疌lass2鐨勫熀綾匯?a href="http://www.shnenglu.com/images/cppblog_com/woaidongmao/WindowsLiveWriter/VisioUML_E70C/clip_image002_2.jpg"> 鑱氶泦鍜岀粍鎴?/b> 浠庡鏄撶悊瑙g殑鍏崇郴璇磋搗.緇忓父鏈変竴涓被鏄彟涓鏍肩被鐨勬暟鎹垚鍛樼殑鎯呭喌銆傚湪UML涓〃鐜頒負錛岃仛闆嗭紙aggregation)鍜岀粍鎴愶紙composition錛夈? 浠庡浘涓婃潵鐪嬶紝榪欎袱縐嶅叧緋婚兘琛ㄧ幇涓轟竴绔槸鑿卞艦鐨勭洿綰褲傚叾涓湁鑿卞艦鐨勪竴绔槸鏁翠綋錛屽彟澶栦竴绔槸閮ㄥ垎銆傚尯鍒氨鏄彵褰㈡槸絀哄績榪樻槸瀹炲績鐨勩備粠C++鏇懼簭鏉ョ湅鐨勮瘽錛屽鏋滃浘鐢繪垚瀹炲績鑿卞艦鐨勮瘽錛孋lass1灝辮璐熻矗Class2鐨勫垱寤哄拰閿姣併傛洿鍑嗙‘鐨勮錛屽氨鏄鏋淐lass1涓嶅瓨鍦ㄤ簡錛孋lass2涔熶竴瀹氫笉瀛樺湪銆備緥濡傝薄涓嬮潰鐨勭▼搴忋? class Class2 { }; class Class1 { Class2 m_objClass2; } 褰撶劧涔熸湁涓嬮潰鐨勬儏鍐? class Class2 { }; class Class1 { Class1錛堬級錛? ~Class1錛堬級錛? Class2* m_pClass2Obj; }; 鍏夌湅綾葷殑澹版槑灝變笉琛屼簡銆傝繖鏄氨闇瑕佺湅綾葷殑瀹炵幇閮ㄥ垎浜嗐? Class1錛氾細Class1錛堬級 { m_pClass2Obj = new Class1; } Class1::~Class1錛堬級 { delete m_pClass2Obj; m_pClass2 = NULL錛? } 緇勬垚錛圕omposition錛夊叧緋伙紝濡傛灉鍦–lass1鐨勫璞¢攢姣佺殑鏃跺欙紝姣斿鍦ㄦ瀽鏋勫嚱鏁頒腑娌℃湁灝嗘暟鎹垚鍛橀攢姣佺殑浠g爜錛岄偅涔堣繖縐嶅叧緋誨氨鏄仛闆嗭紙aggregation錛夊叧緋匯傚綋鐒訛紝閿姣佹暟鎹垚鍛樼殑浠g爜錛屼細鏈夊緢澶氱銆? 渚濊禆鍏崇郴 渚濊禆鍏崇郴灝辨槸鍦ㄤ互涓被涓嬌鐢ㄤ簡鍙︿竴涓被銆備緥濡備笅闈㈢殑浠g爜 Class1錛氾細DoSomething錛堬級 { Class3 obj; obj.DoClass3Work(); } 灝辨槸榪欐牱鐨勬儏鍐點傜敾鎴愬浘鐨勮瘽灝卞儚涓嬮潰榪欐牱銆? 鐢籙ML鍥炬湁濂藉縐嶅伐鍏?VISIO鍙槸鍏朵腑涓縐?VISIO鐨勫姩浣滈潪甯歌交蹇?寰堝浜洪兘鍦ㄧ敤.浣嗘槸瀵逛紬澶氱殑C++紼嬪簭鍛樻潵璁?瀛樺湪鐫涓涓棶棰?閭e氨鏄疺ISIO涓殑鐢ㄨ閮芥潵鑷潰鍚戝鍚?鍜孋++紼嬪簭鍛樺父鐢ㄧ殑璇存硶鏈夋墍涓嶅悓.榪欎竴鐐逛護寰堝C++紼嬪簭榪滃緢鍥版儜.甯屾湜鏈枃鑳戒負鎮ㄨВ鍐寵繖涓棶棰? 鍦ㄦ垜浠皢浣跨敤涓嬮潰鐨?a >渚嬪瓙錛圲MLSample.zip錛?/a>鏉ヨ繘琛岃鏄庛? 鐒跺悗閫夋嫨[File]-[New]-[Software]-[UML Model Diagram]灝卞彲浠ヨ繘鍏ュ埌UML浣滃浘鐘舵佷簡.榪欐椂鐢婚潰鑷沖皯搴旇鍖呭惈3涓儴鍒?褰㈢姸紿楀彛,妯″瀷璧勬簮綆$悊鍣?鍜屼綔鍥懼尯鍩?鍙互閫氳繃閫夋嫨[View]-[Shapes Window]鏉ヨ〃紺哄拰闅愯棌褰㈢姸紿楀彛.妯″瀷璧勬簮綆$悊鍣ㄦ瘮杈冮夯鐑?蹇呴』閫氳繃[UML]-[View]-[Model Explorer]鏉ヨ繘琛? 鍦ㄦā鍨嬭祫婧愮鐞嗗櫒涓夋嫨[Static Mdel]-[Top Package],鐐歸紶鏍囧彸閿?浠庡脊鍑鴻彍鍗曚腑閫夋嫨[New]-[Static Structure Diagram]鍗沖彲鍒涘緩鐢ㄤ簬鍒朵綔綾葷粨鏋勫浘鐨勫浘闈簡,濡傛灉浠庡脊鍑鴻彍鍗曚腑閫夋嫨[New]-[Sequence Diagram]鍗沖彲鍒涘緩鐢ㄤ簬鍒朵綔鏃跺簭鍥劇殑鐨勫浘闈? 璁懼畾瀵硅薄鐨勮緇嗕俊鎭殑澶ч儴鍒嗘搷浣滄槸閫氳繃灞炴у璇濇瀹炵幇鐨?鍙互閫氳繃鍦ㄥ璞′笂鍙屽嚮榧犳爣鎴栧崟鍑婚紶鏍囧彸閿茍閫夋嫨灞炴у睘鎬ф潵琛ㄧず灞炴у璇濇. 鍦ㄧ粯鍥劇殑榪囩▼涓繛綰挎槸鏈甯歌鐨勬搷浣?璞′笅鍥鵑偅鏍?綰挎湁鐩磋榪炴帴綰垮拰鐩寸嚎榪炴帴綰垮拰鏇茬嚎榪炴帴綰夸笁縐? 鍙互閫氳繃,鐢ㄩ紶鏍囧彸閿偣鍑誨笇鏈涙敼鍙樼綾葷殑榪炴帴綰?鍦ㄥ脊鍑鴻彍鍗曚腑閫夋嫨閫傚綋鐨勮繛鎺ョ嚎縐嶇被. 鎴戞兂璇寸殑涓嶆槸褰撶劧鎴戜滑鍙互閫氳繃鑿滃崟瀹炵幇鎵╁ぇ鍜岀緝灝?鑰屾槸閫氳繃鎸変綇Ctrl閿?鍦ㄤ笂婊?涓嬫粴榧犳爣鐨勬粴杞潵瀹炵幇鎵╁ぇ鍜岀緝灝? 闄や簡鐢ㄩ紶鏍囨嫋鍔ㄦ粴鍔ㄦ潯鐨勬柟娉曚互澶?鐢ㄩ紶鏍囨粴杞篃鍙互涓婁笅婊氬姩灞忓箷.閭d箞宸﹀彸婊氬姩鍛?浣犲彲鑳藉凡緇忕寽鍒頒簡,鍏堟寜涓婼hift閿氨鍙互浜? 棣栧厛鎸変笅Ctrl閿?鐢ㄩ紶鏍囪劚鍔ㄥ璞?鏈鍚庨噴鏀綜trl閿氨鍙互浜?闇瑕佹敞鎰忕殑Ctrl閿噴鏀劇殑鏃舵満涓瀹氳鍦ㄩ紶鏍囬噴鏀句箣鍚? 鎸変笅Shift閿?鍦ㄦ嫋鍔ㄩ紶鏍囩敾綰?灝卞彲浠ュ緢綆鍗曠殑鐢誨嚭姘村鉤綰垮拰鍨傜洿綰?鍏跺疄榪樺彲浠ョ敾45搴︾殑鏂滅嚎.
]]>
]]>鍚姩Visio
鍒涘緩鍚勭鍥鵑潰
璁懼畾瀵硅薄鐨勫睘鎬?/h3>
鍑犵灝忔妧宸?/h3>
鏀瑰彉榪炵嚎鐨勬柟寮?/h4>
鎵╁ぇ鍜岀緝灝?/h4>
涓婁笅/宸﹀彸婊氬姩灞忓箷
鎷瘋礉宸茬粡瀛樺湪鐨勫璞?/h4>
鐢繪按騫崇嚎/鍨傜洿綰?/h4>
]]>
鍥犱負綾誨浘寰堢洿瑙?鎵浠ユ亹鎬旵++鎴愬憳棣栧厛鎺ヨЕ鍒扮殑搴旇灝辨槸綾誨浘浜?鍦ㄨ繖綃囨枃绔犱腑鎴戜滑瑕佸皢涓嬮潰涓涓湪MFC紼嬪簭涓殢澶勫彲浠ヨ鍒扮被鐢║ML鍥捐〃鐜板嚭鏉?
class CGraphicObject
{
CRect m_rectBound;
public:
BOOL SetRect(CRect rect);
CRect GetRect();
};
鍦ㄦā鍨嬭祫婧愮鐞嗗櫒涓夋嫨[Static Model]-[Top Package],鐐歸紶鏍囧彸閿?浠庡脊鍑鴻彍鍗曚腑閫夋嫨[New]-[Static Structure Diagram]鍗沖彲鍒涘緩鐢ㄤ簬鍒朵綔綾葷粨鏋勫浘鐨勫浘闈簡.
棣栧厛鎴戜滑閬囧埌鐨勯棶棰樻槸,CRect鍜孊OOL涓ょ綾誨瀷鍦╒isio鏁版嵁綾誨瀷涓壘涓嶅埌.鎵浠ユ垜浠厛浠庤拷鍔犳暟鎹被鍨嬪紑濮?涓轟簡渚夸簬綆$悊鎴戜滑浼氬厛鍒涘緩MFC鏁版嵁綾誨瀷鍖?
鍙抽敭鐐瑰嚮涓嬪浘涓ā鍨嬭祫婧愮鐞嗗櫒鐨勬牴鑺傜偣.鍦ㄥ脊鍑鴻彍鍗曚腑,閫夋嫨[鍖匽欏圭洰.
涓嬪浘鏄脊鍑虹殑鍖呭睘鎬у璇濇.鐐瑰嚮[New]鎸夐挳,鍦╗UML Package]鍒椾腑杈撳叆[MFC Data Types],鐐瑰嚮[OK]鎸夐挳緇撴潫.涓婂浘鍙互鐪嬪埌榪藉姞鐨凪FC鏁版嵁綾誨瀷鍖?
鍦╗MFC Data Types]欏圭洰涓婄偣鍑誨彸閿?閫夋嫨[New]-[Data Type],鍦ㄥ脊鍑虹殑[UML Datatype Property]紿楀彛涓殑綾誨埆紿楀彛涓夋嫨[DataType]欏圭洰,鍦ㄥ悕縐伴」鐩腑濉啓[BOOL],閫夋嫨[OK]緇撴潫.鐢ㄥ悓鏍風殑鏂規硶榪藉姞CRect綾誨瀷.
娉ㄦ剰:鍦∕FC涓瑿Rect鏄竴涓被,浣嗘槸鐢變簬鎴戜滑騫朵笉鍏沖績CRect鐨勭粏鑺?鎵浠ユ妸CRect浣滀負綆鍗曟暟鎹被鍨嬫潵澶勭悊.
榪藉姞涓涓被寰堢畝鍗?鐒跺悗浠庡艦鐘剁獥鍙d腑鐨刐UML Static Sturcture]鍒嗙被涓嫋鍔╗Class]瀵硅薄灝卞彲浠ヤ簡.
璁懼畾綾葷殑璇︾粏淇℃伅鐨勫ぇ閮ㄥ垎宸ヤ綔閮芥槸鍚屾椂灞炴у璇濇瀹炵幇鐨?瀵逛簬C++紼嬪簭鍛樻潵璇?闇瑕佽瀹氱殑鍐呭鍖呮嫭綾誨悕,鏁版嵁鎴愬憳,鎴愬憳鍑芥暟.
浠ュ紑澶存彁鍒扮殑綾諱負渚嬨?
棣栧厛鍦╗Categories]紿楀彛涓夋嫨[Class]欏圭洰,鐒跺悗鍦ㄥ彸闈㈢殑鍚嶇О鏍忕洰涓啓鍏ョ被鍚嶅氨鍙互浜?鍦ㄨ繖涓欏典腑鎴戜滑鍙互鏆傛椂涓嶅繀鍦ㄦ剰鍏朵粬鐨勫唴瀹?
濡傛灉鍙槸璁懼畾綾誨悕鐨勮瘽,澶у彲涓嶅繀鐢ㄥ睘鎬у璇濇.鍙鍦ㄩ変腑綾誨璞″悗,鍐嶅湪鏈涓婇潰涓鏍忎腑鍗曞嚮宸﹂敭,鐒跺悗鍦ㄨ緭鍏ュ氨鍙互浜?
鍦╗Categories]紿楀彛涓夋嫨[Attributes]欏圭洰,鍦ㄥ彸闈㈢殑鐢婚潰涓鍔犲睘鎬с俒Attribute]鏍忕洰涓啓鍏ュ彉閲忓悕錛孾Type]鏄敤鏉ラ夋嫨鏁版嵁綾誨瀷鐨勩傝繖閲屾垜浠夋嫨[MFC DataTypes::CRect]銆俒Visibility]鏍忕洰閫夋嫨鐨勬槸榪欎釜鎴愬憳鏄叕鍏辯殑(public)錛屼繚鎶ょ殑(protected)榪樻槸縐佹湁鐨?private)銆傝繖閲屾垜浠夋嫨[protected].[Multiplicity]涓鑸炕璇戞垚澶氶噸鎬э紝鏄寚錛屽湪綾諱腑錛屾暟鎹垚鍛樼殑涓暟銆俒1]浠h〃鍦ㄨ繖涓被涓紝鏈夎屼笖鍙湁涓涓暟鎹垚鍛樸俒0..1]琛ㄧず錛屾病鏈夋垨鑰呮湁涓涓傚彲浠ュ湪[Init.Value]涓緭鍏ユ暟鎹垚鍛樼殑鍒濆箋?
鍦╗Category]紿楀彛涓夋嫨[Operations]欏圭洰錛屽湪鍙抽潰鐨勮〃鏍間腑榪藉姞鎴愬憳鍑芥暟銆傚湪錛伙級锝夛綋锝夛絺锝岋綁锝岋綁锝旓綑錛戒腑閫夋嫨鍑芥暟鏄紝鍏辨湁錛屼繚鎶よ繕鏄鏈夌殑銆傦薊錛幫綇锝岋綑锝嶏綇锝掞綈锝堬綁锝冿冀琛ㄧず鍑芥暟鏄惁涓哄鎬侊紝涔熷氨鏄嬌鍚︽槸铏氬嚱鏁般傦薊錛籌絻锝忥綈锝咃冀琛ㄧず涓涓嚱鏁版槸灞炰簬瀹炰緥錛堬綁锝庯綋锝旓絹锝庯絻锝咃級榪樻槸灞炰簬綾伙紙锝冿綄锝侊綋锝擄綁锝嗭綁锝咃綊錛夛紝闈欐佸嚱鏁幫紝涔熻縐頒負綾葷殑鎴愬憳鍑芥暟錛屾櫘閫氱殑鎴愬憳鍑芥暟涔熻縐頒負瀹炰緥鐨勬垚鍛樺嚱鏁般傛墍浠ュ榪囷紝鍦ㄨ繖閲岄変腑浜嗭薊锝冿綄锝侊綋锝擄綁锝嗭綁锝咃綊錛斤紝灝辮鏄庤繖涓嚱鏁版槸闈欐佸嚱鏁般?
涓婇潰鐨勬搷浣滐紝鍙槸璁懼畾鍑芥暟鐨勪竴浜涘熀鏈俊鎭紝鏇磋緇嗙殑淇℃伅鍙互閫氳繃閫変腑鍑芥暟鍚庯紝鐐瑰嚮錛誨睘鎬э冀鎸夐挳錛屽湪鍑虹幇鐨勶薊錛碉輯錛錛綈锝咃綊锝侊綌锝夛綇锝庛錛幫綊锝忥綈锝咃綊锝旓綁锝咃綋錛界獥鍙d腑璁懼畾銆傞鍏堟槸璁懼畾鍑芥暟鐨勫熀鏈俊鎭傚拰涓婇潰鐨勭獥鍙i噸澶嶇殑鍐呭錛屾垜浠笉鍐嶈鏄庛傛垜浠彧璇存槑錛伙及锝掞綇锝嗭綁锝橈冀鍜岋薊錛籌綍锝嗭絾锝夛綐錛姐傚鏋滄垜浠兂瑕佽繑鍥炵殑綾誨瀷鏄寚閽堢被鍨嬫垨鑰呮槸搴旂敤綾誨瀷鐨勮瘽錛屽彧瑕佸湪錛伙綋锝曪絾锝嗭綁锝橈冀涓~鍐欙薊錛婏冀鎴栵薊&錛藉氨鍙互浜嗐?
鎺ヤ笅鏉ユ槸璁懼畾鍑芥暟鐨勫弬鏁般傝繖涓嚱鏁板彧鏈変竴涓弬鏁幫綊锝咃絻锝旓紝浣嗘槸錛伙及锝侊綊锝侊綅锝咃綌锝咃綊錛界獥鍙d腑鍗村嚭鐜頒簡錛屼袱涓弬鏁般備笉榪囬氳繃瑙傚療錛伙極锝夛綆锝勶冀鍒楃殑鍐呭鍙互鐭ラ亾錛岀涓涓弬鏁幫薊錛籌絽锝旓疾锝咃絻锝旓冀鏄嚱鏁扮殑榪斿洖鍊箋傜浜屼釜錛伙綊锝咃絻锝旓冀鎵嶆槸鎴戜滑鎯寵鐨勩傝繖涓弬鏁扮殑錛伙極锝夛綆锝勶冀鏄薊锝夛綆錛借〃鏄庤繖涓弬鏁版槸鐢ㄦ潵鍚戝嚱鏁頒紶閫掍俊鎭殑銆傚鏋滄槸鐢ㄦ潵鍙栧緱淇℃伅鐨勶紝灝遍夋嫨錛伙綇锝曪綌錛斤紝濡傛灉鏄弻鏂瑰悜浼犻掍俊鎭殑錛屽氨閫夋嫨錛伙綁锝庯綇锝曪綌錛姐?
瀹屾垚涓婇潰鐨勫伐浣滀互鍚庯紝鐐瑰嚮錛伙集錛冀鎸夐挳涓ゆ錛屽洖鍒頒綔鍥劇敾闈€傛潵鐪嬬湅鎴戜滑鐨勬垚鏋滃惂銆?
瀹為檯鐨?a >渚嬪瓙宸ョ▼涓殑CGraphicObject鐨刄ML鍥懼彲浠ュ弬鐓?a >Sample1Vsd.zip.