锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
2012-08-15 changshoumeng璇曢獙鎴愬姛
1. 瀹夎鐩?br /> sc_vs.net_2003_prereq.iso
VS.Net_2003_Enar_CHS_CD1.ISO
VS.Net_2003_Enar_CHS_CD2.ISO
2. 瀹夎姝ラ
2.1 瀹夎 sc_vs.net_2003_prereq.iso
鍙兘鍑虹幇闂錛欶rontPage2000 鏈嶅姟鍣ㄦ墿灞曞畨瑁呭け璐ャ?br /> 瑙e喅鍔炴硶錛?br />
a錛氫笅杞藉叧浜巌is鐨勫畬鏁村寘
(璇存槑錛氳繖涓姝ヨВ鍐崇殑闂鏄紝xp涓婂彲鑳藉茍娌℃湁iis鐨勫畨瑁呮枃浠?
鎺у埗闈㈡澘/娣誨姞鎴栧垹闄ゆ枃浠?娣誨姞鎴栧垹闄indows緇勪歡/
b: 棣栧厛 鍕鵑?[闄勪歡鍜屽伐鍏穄 /璇︾粏淇℃伅D/鍙栨秷鍕鵑夋父鎴?紜畾
(璇存槑錛氳繖涓姝ヨВ鍐崇殑闂鏄紝瀹夎IIS 鏃跺嚭鐜板畨瑁呯▼搴忔棤娉曞鍒舵枃浠秡Clinettm.exe)
c: 鐒跺悗 鍕鵑?[Inernet淇℃伅鏈嶅姟(IIS)] /璇︾粏淇℃伅D/鍕鵑塅rontPage2000 鏈嶅姟鎵╁睍
鐐瑰嚮涓嬩竴姝?榪涜瀹夎銆?br /> (璇存槑錛氳繖涓姝ヨВ鍐崇殑闂鏃訛紝FrontPage2000 鏈嶅姟鍣ㄦ墿灞曠粍浠跺畨瑁呭け璐?
2.2 瀹夎VS.Net_2003_Enar_CHS_CD1.ISO
鍙兘鍑虹幇鐨勯棶棰橈細(xì)
閿欒 1308銆傛湭鎵懼埌婧愭枃浠? d:\everbox\vs2003\vs.net_2003_enar_chs_cd1\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1
\Docs\2052\cpsamples.HxS銆傝楠岃瘉鏂囦歡鏄惁瀛樺湪浠ュ強(qiáng)鏄惁鍙互璁塊棶瀹冦?br /> 瑙e喅鍔炴硶錛?br /> 榪欎簺鏂囦歡錛岄兘鏉ヨ嚜浜嶸S.Net_2003_Enar_CHS_CD2.ISO閲岋紱
鍙浠庡厜鐩?閲屾妸瀵瑰簲鐨勬枃浠舵嫹璐濆埌鍏夌洏1閲岋紝灝辮浜嗐?br /> 浣嗘槸錛屽鏋滆繖鏍風(fēng)殑璇濓紝榪欐牱鐨勬搷浣滃氨浼?xì)鍑虹幇寰堝娆″Q岄涓虹箒鐞愩?br /> 浜庢槸鎴戞兂錛屽亣濡傝兘澶熷厜鐩?涓庡厜鐩?鍚堝茍涓涓厜鐩樺氨濂戒簡銆傝В鍐沖姙娉曪紝浣跨敤鏂囦歡鍚屾宸ュ叿 GoodSyncPro錛?br /> 灝嗕袱涓枃浠跺す榪涜鍚堝茍銆?br /> 緇х畫鐐瑰嚮閲嶈瘯錛岃繘琛屽畨瑁咃紝榪欐牱灝卞畨瑁卭k浜嗐?/p>
鍙傝冪綉鏂囷細(xì)
http://hi.baidu.com/vc_net/item/086b31dff8ee4df792a97455
http://www.codesky.net/article/200911/125322.html
MFC搴旂敤紼嬪簭涓鐞嗘秷鎭殑欏哄簭
1.AfxWndProc()
2.AfxCallWndProc()
3.WindowProc()
4.OnWndMsg()
5.OnCommand()
6.OnCmdMsg()
MFC搴旂敤紼嬪簭鍒涘緩紿楀彛鐨勮繃紼?/strong>
1.PreCreateWindow()
2.PreSubclassWindow()
3.OnGetMinMaxInfo()
4.OnNcCreate()
5.OnNcCalcSize()
6.OnCreate()
7.OnSize()
8.OnMove()
9.OnChildNotify()
MFC搴旂敤紼嬪簭鍏抽棴紿楀彛鐨勯『搴?闈炴ā鎬佺獥鍙?
1.OnClose()
2.OnDestroy()
3.OnNcDestroy()
4.PostNcDestroy()
MFC搴旂敤紼嬪簭涓墦寮妯″紡瀵硅瘽妗嗙殑鍑芥暟璋冪敤欏哄簭
1.DoModal()
2.PreSubclassWindow()
3.OnCreate()
4.OnSize()
5.OnMove()
6.OnSetFont()
7.OnInitDialog()
8.OnShowWindow()
9.OnCtlColor()
10. OnChildNotify()
MFC搴旂敤紼嬪簭涓叧闂ā寮忓璇濇鐨勯『搴?/strong>
1.OnClose()
2.OnKillFocus()
3.OnDestroy()
4.OnNcDestroy()
5.PostNcDestroy()
鎵撳紑鏃犳ā寮忓璇濇鐨勯『搴?/strong>
1.PreSubclassWindow()
2.OnCreate()
3.OnSize()
4.OnMove()
5.OnSetFont()
http://blog.sina.com.cn/s/blog_55cf5f230100p471.html
CPU涓夌妯″紡
澶勭悊鍣ㄦ湁3縐嶅伐浣滄ā寮忥細(xì)瀹炴ā寮忋佷繚鎶ゆā寮忓拰铏氭嫙86妯″紡銆傚疄妯″紡鍜岃櫄鎷?/span>86妯″紡鏄負(fù)浜嗗拰8086澶勭悊鍣ㄥ吋瀹硅岃緗殑銆傚湪瀹炴ā寮忎笅錛?/span>80386澶勭悊鍣ㄥ氨鐩稿綋浜庝竴涓揩閫熺殑8086澶勭悊鍣ㄣ備繚鎶ゆā寮忔槸80386澶勭悊鍣ㄧ殑涓昏宸ヤ綔妯″紡銆傚湪姝ゆ柟寮忎笅錛?/span>80386鍙互瀵誨潃4GB鐨勫湴鍧絀洪棿錛屽悓鏃訛紝淇濇姢妯″紡鎻愪緵浜?/span>80386鍏堣繘鐨勫浠誨姟銆佸唴瀛樺垎欏電鐞嗗拰浼樺厛綰т繚鎶ょ瓑鏈哄埗銆備負(fù)浜嗗湪淇濇姢妯″紡涓嬬戶緇彁渚涘拰8086澶勭悊鍣ㄧ殑鍏煎錛?/span>80386鍙堣璁′簡涓縐嶈櫄鎷?/span>86妯″紡錛屼互渚垮彲浠ュ湪淇濇姢妯″紡鐨勫浠誨姟鏉′歡涓嬶紝鏈夌殑浠誨姟榪愯32浣嶇▼搴忥紝鏈夌殑浠誨姟榪愯MS-DOS紼嬪簭銆傚湪铏氭嫙86妯″紡涓嬶紝鍚屾牱鏀寔浠誨姟鍒囨崲銆佸唴瀛樺垎欏電鐞嗗拰浼樺厛綰э紝浣嗗唴瀛樼殑瀵誨潃鏂瑰紡鍜?/span>8086鐩稿悓錛屼篃鏄彲浠ュ鍧1 MB鐨勭┖闂淬?/span>
銆愭壒娉細(xì)澶勭悊鍣ㄤ粠8086鍗囩駭鍒?/span>80386錛屽伐浣滄ā寮忎篃浠庡疄妯″紡鍗囩駭鍒頒繚鎶ゆā寮忥紝涓轟簡鍏煎8086浜х敓铏氭嫙86妯″紡銆?/span>
鐢辨鍙錛?/span>80386澶勭悊鍣ㄧ殑3縐嶅伐浣滄ā寮忓悇鏈夌壒鐐逛笖鐩鎬簰鑱旂郴銆傚疄妯″紡鏄?/span>80386澶勭悊鍣ㄥ伐浣滅殑鍩虹錛岃繖鏃?/span>80386褰撳仛涓涓揩閫熺殑8086澶勭悊鍣ㄥ伐浣溿?strong style="mso-bidi-font-weight: normal">鍦ㄥ疄妯″紡涓嬪彲浠ラ氳繃鎸囦護(hù)鍒囨崲鍒頒繚鎶ゆā寮忥紝涔熷彲浠ヤ粠淇濇姢妯″紡閫鍥炲埌瀹炴ā寮忋?/span>铏氭嫙86妯″紡鍒欎互淇濇姢妯″紡涓哄熀紜錛屽湪淇濇姢妯″紡鍜岃櫄鎷?/span>86妯″紡涔嬮棿鍙互浜掔浉鍒囨崲錛屼絾涓嶈兘浠庡疄妯″紡鐩存帴榪涘叆铏氭嫙86妯″紡鎴栦粠铏氭嫙86妯″紡鐩存帴閫鍒板疄妯″紡銆?/span>
銆愭壒娉細(xì)瀹炴ā寮?#8594;淇濇姢妯″紡→铏氭嫙86妯″紡銆?/span>
1. 瀹炴ā寮?/span>
80386澶勭悊鍣ㄨ澶嶄綅鎴栧姞鐢電殑鏃跺欎互瀹炴ā寮忓惎鍔ㄣ傝繖鏃跺欏鐞嗗櫒涓殑鍚勫瘎瀛樺櫒浠ュ疄妯″紡鐨勫垵濮嬪寲鍊煎伐浣溿?/span>80386澶勭悊鍣ㄥ湪瀹炴ā寮忎笅鐨勫瓨鍌ㄥ櫒瀵誨潃鏂瑰紡鍜?/span>8086鏄竴鏍風(fēng)殑錛岀敱孌靛瘎瀛樺櫒鐨勫唴瀹逛箻浠?/span>16褰撳仛鍩哄湴鍧錛屽姞涓婃鍐呯殑鍋忕Щ鍦板潃褰㈡垚鏈緇堢殑鐗╃悊鍦板潃錛岃繖鏃跺欏畠鐨?/span>32浣嶅湴鍧綰垮彧浣跨敤浜嗕綆20浣?/span>銆傚湪瀹炴ā寮忎笅錛?/span>80386澶勭悊鍣ㄤ笉鑳藉鍐呭瓨榪涜鍒嗛〉綆$悊錛屾墍浠ユ寚浠ゅ鍧鐨勫湴鍧灝辨槸鍐呭瓨涓疄闄呯殑鐗╃悊鍦板潃銆傚湪瀹炴ā寮忎笅錛屾墍鏈夌殑孌甸兘鏄彲浠ヨ銆佸啓鍜屾墽琛岀殑銆?/span>
銆愭壒娉細(xì)鐗╃悊鍦板潃銆?/span>
瀹炴ā寮忎笅80386涓嶆敮鎸佷紭鍏堢駭錛屾墍鏈夌殑鎸囦護(hù)鐩稿綋浜庡伐浣滃湪鐗規(guī)潈綰э紙浼樺厛綰?/span>0錛夛紝鎵浠ュ畠鍙互鎵ц鎵鏈夌壒鏉冩寚浠わ紝鍖呮嫭璇誨啓鎺у埗瀵勫瓨鍣?/span>CR0絳夈傚疄闄呬笂錛?/span>80386灝辨槸閫氳繃鍦ㄥ疄妯″紡涓嬪垵濮嬪寲鎺у埗瀵勫瓨鍣紝GDTR錛?/span>LDTR錛?/span>IDTR涓?/span>TR絳夌鐞嗗瘎瀛樺櫒浠ュ強(qiáng)欏佃〃錛岀劧鍚庡啀閫氳繃鍔犺澆CR0浣垮叾涓殑淇濇姢妯″紡浣胯兘浣嶇疆浣嶈岃繘鍏ヤ繚鎶ゆā寮忕殑銆傚疄妯″紡涓嬩笉鏀寔紜歡涓婄殑澶氫換鍔″垏鎹€?/span>
銆愭壒娉細(xì)澶氫換鍔°?/span>
瀹炴ā寮忎笅鐨勪腑鏂鐞嗘柟寮忓拰8086澶勭悊鍣ㄧ浉鍚岋紝涔熺敤涓柇鍚戦噺琛ㄦ潵瀹氫綅涓柇鏈嶅姟紼嬪簭鍦板潃銆備腑鏂悜閲忚〃鐨勭粨鏋勪篃鍜?/span>8086澶勭悊鍣ㄤ竴鏍鳳紝姣?/span>4涓瓧鑺傜粍鎴愪竴涓腑鏂悜閲忥紝鍏朵腑鍖呮嫭涓や釜瀛楄妭鐨勬鍦板潃鍜屼袱涓瓧鑺傜殑鍋忕Щ鍦板潃銆?/span>
銆愭壒娉細(xì)涓柇鍚戦噺銆?/span>
浠庣紪紼嬬殑瑙掑害鐪嬶紝闄や簡鍙互璁塊棶80386鏂板鐨勪竴浜涘瘎瀛樺櫒澶栵紝瀹炴ā寮忕殑80386澶勭悊鍣ㄥ拰8086鏈変粈涔堣繘姝ュ憿錛?span style="COLOR: red">鍏跺疄鏈澶х殑濂藉鏄彲浠ヤ嬌鐢?/span>80386鐨?/span>32浣嶅瘎瀛樺櫒錛岀敤32浣嶇殑瀵勫瓨鍣ㄨ繘琛岀紪紼嬪彲浠ヤ嬌璁$畻紼嬪簭鏇村姞綆鎹鳳紝鍔犲揩浜嗘墽琛岄熷害銆傛瘮濡傚湪8086鏃朵唬鐢?/span>16浣嶅瘎瀛樺櫒鏉ュ畬鎴?/span>32浣嶇殑涔樻硶鍜岄櫎娉曟椂錛岃榪涜鐨勬楠ゅ疄鍦ㄦ槸澶浜嗭紝浜庢槸鑰冭瘯鏃跺嚭榪欎竴綾葷殑棰樼洰灝辨垚浜嗚佸笀浠殑鏈鐖憋紝鎵浠ラ偅鏃跺欏綋瀛︾敓鍋氭ⅵ閮芥兂鐫璁╁瘎瀛樺櫒鐨勪綅鏁板揩蹇暱錛岀幇鍦ㄦⅵ鎯崇粓浜庢垚鐪熶簡錛岀敤32浣嶅瘎瀛樺櫒涓鏉℃寚浠ゅ氨鍙互瀹屾垚錛堥棶棰樻槸鑰佸笀浠篃鍙戠幇浜嗚繖涓姇鏈哄彇宸х殑鍔炴硶錛屼負(fù)浜嗚揪鍒拌瀛︾敓浠熀紜鎵庡疄鐨勭洰鐨勶紝涔熸妸棰樼洰鎹㈡垚浜?/span>64浣嶇殑涔樻硶鍜岄櫎娉曪紝鎵浠ョ幇鍦ㄦ櫄涓婂仛鐨勬ⅵ鎹㈡垚浜嗗瘎瀛樺櫒蹇界劧闀垮埌浜?/span>64浣嶏級(jí)錛涘叾嬈★紝80386涓?span style="COLOR: red">澧炲姞鐨勪袱涓緟鍔╂瀵勫瓨鍣?/span>FS鍜?/span>GS鍦ㄥ疄妯″紡涓嬩篃鍙互浣跨敤錛岃繖鏍鳳紝鍚屾椂鍙互璁塊棶鐨勬杈懼埌浜?/span>6涓屼笉蹇呰冭檻閲嶆柊瑁呭叆鐨勯棶棰橈紱鏈鍚庯紝寰堝80386鐨?strong style="mso-bidi-font-weight: normal">鏂板鎸囦護(hù)涔熶嬌涓浜涘師鏉ヤ笉寰堟柟渚跨殑鎿嶄綔寰椾互綆鍖?/span>錛屽80386涓彲浠ヤ嬌鐢ㄤ笅榪版寚浠よ繘琛屾暟緇勮闂細(xì)
mov cx,銆[eax + ebx*2 + 鏁扮粍鍩哄湴鍧]
榪欑浉褰撲簬鎶婃暟緇勪腑涓嬫爣涓?/span>eax鍜?/span>ebx鐨勯」鐩斁鍏?/span>cx涓紱ebx * 2涓殑2鍙互鏄?/span>1錛?/span>2錛?/span>4鎴?/span>8錛岃繖鏍峰氨鍙互鏀寔8浣嶅埌64浣嶇殑鏁扮粍銆傝屽湪8086澶勭悊鍣ㄤ腑錛屽疄鐜扮浉鍚岀殑鍔熻兘瑕佽繘琛屼竴嬈′箻娉曞拰涓ゆ鍔犳硶銆傚彟澶栵紝pushad鍜?/span>popad鎸囦護(hù)鍙互涓嬈℃妸鎵鏈?/span>8涓氱敤瀵勫瓨鍣ㄧ殑鍊煎帇鍏ユ垨浠庡爢鏍堜腑寮瑰嚭錛屾瘮璧風(fēng)敤涓嬮潰鐨勬寚浠ゅ垎鍒皢8涓瘎瀛樺櫒鍏ユ爤瑕佸揩浜嗗緢澶氾細(xì)
push eax
push ebx
...
pop ebx
pop eax
褰撶劧錛屼嬌鐢ㄤ簡榪欎簺鏂版寚浠ょ殑紼嬪簭鏄棤娉曟嬁鍥炲埌8086澶勭悊鍣ㄤ笂鍘繪墽琛岀殑錛屽洜涓鴻繖浜涙寚浠ょ殑緙栫爜鍦?/span>8086澶勭悊鍣ㄤ笂鏄湭瀹氫箟鐨勩?/span>
銆愭壒娉細(xì)鏂板閽堝錛擄紥浣嶅瘎瀛樺櫒鐨勬寚浠わ紝綆鍖栨搷浣溿?/span>
2. 淇濇姢妯″紡
褰?/span>80386宸ヤ綔鍦ㄤ繚鎶ゆā寮忎笅鐨勬椂鍊欙紝瀹冪殑鎵鏈夊姛鑳介兘鏄彲鐢ㄧ殑銆傝繖鏃?/span>80386鎵鏈夌殑32鏍瑰湴鍧綰塊兘鍙緵瀵誨潃錛岀墿鐞嗗鍧絀洪棿楂樿揪4 GB銆傚湪淇濇姢妯″紡涓嬶紝鏀寔鍐呭瓨鍒嗛〉鏈哄埗錛屾彁渚涗簡瀵硅櫄鎷熷唴瀛樼殑鑹ソ鏀寔銆傝櫧鐒朵笌8086鍙鍧鐨?/span>1 MB鐗╃悊鍦板潃絀洪棿鐩告瘮錛?/span>80386鍙鍧鐨勭墿鐞嗗湴鍧絀洪棿鍙皳寰堝ぇ錛屼絾瀹為檯鐨勫井鏈虹郴緇熶笉鍙兘瀹夎濡傛澶х殑鐗╃悊鍐呭瓨銆傛墍浠ワ紝涓轟簡榪愯澶у瀷紼嬪簭鍜岀湡姝e疄鐜板浠誨姟錛岃櫄鎷熷唴瀛樻槸涓縐嶅繀闇鐨勬妧鏈?/span>
銆愭壒娉細(xì)铏氭嫙鍐呭瓨銆?/span>
淇濇姢妯″紡涓?/span>80386鏀寔澶氫換鍔?/span>錛屽彲浠ヤ緷闈犵‖浠朵粎鍦ㄤ竴鏉℃寚浠や腑瀹炵幇浠誨姟鍒囨崲銆備換鍔$幆澧冪殑淇濇姢宸ヤ綔鏄敱澶勭悊鍣ㄨ嚜鍔ㄥ畬鎴愮殑銆傚湪淇濇姢妯″紡涓嬶紝80386澶勭悊鍣ㄨ繕鏀寔浼樺厛綰ф満鍒?/span>錛屼笉鍚岀殑紼嬪簭鍙互榪愯鍦ㄤ笉鍚岀殑浼樺厛綰т笂銆備紭鍏堢駭涓鍏卞垎0锝?/span>3 4涓駭鍒紝鎿嶄綔緋葷粺榪愯鍦ㄦ渶楂樼殑浼樺厛綰?/span>0涓婏紝搴旂敤紼嬪簭鍒欒繍琛屽湪姣旇緝浣庣殑綰у埆涓婏紱閰嶅悎鑹ソ鐨勬鏌ユ満鍒跺悗錛屾棦鍙互鍦ㄤ換鍔¢棿瀹炵幇鏁版嵁鐨勫畨鍏ㄥ叡浜篃鍙互寰堝ソ鍦伴殧紱誨悇涓換鍔°備粠瀹炴ā寮忓垏鎹㈠埌淇濇姢妯″紡鏄氳繃淇敼鎺у埗瀵勫瓨鍣?/span>CR0鐨勬帶鍒朵綅PE錛堜綅0錛夋潵瀹炵幇鐨勩傚湪榪欎箣鍓嶈繕闇瑕佸緩绔嬩繚鎶ゆā寮忓繀闇鐨勪竴浜涙暟鎹〃錛屽鍏ㄥ眬鎻忚堪絎﹁〃GDT鍜屼腑鏂弿榪扮琛?/span>IDT絳夈?/span>
DOS鎿嶄綔緋葷粺榪愯浜庡疄妯″紡涓嬶紝鑰?/span>Windows鎿嶄綔緋葷粺榪愯浜庝繚鎶ゆā寮忎笅銆?/span>
銆愭壒娉細(xì)澶氫換鍔★紝浼樺厛綰с?/span>
3. 铏氭嫙86妯″紡
铏氭嫙86妯″紡鏄負(fù)浜嗗湪淇濇姢妯″紡涓嬫墽琛?/span>8086紼嬪簭鑰岃緗殑銆傝櫧鐒?/span>80386澶勭悊鍣ㄥ凡緇忔彁渚涗簡瀹炴ā寮忔潵鍏煎8086紼嬪簭錛屼絾榪欐椂8086紼嬪簭瀹為檯涓婂彧鏄繍琛屽緱蹇簡涓鐐癸紝瀵?/span>CPU鐨勮祫婧愯繕鏄嫭鍗犵殑銆傚湪淇濇姢妯″紡鐨勫浠誨姟鐜涓嬭繍琛岃繖浜涚▼搴忔椂錛屽畠浠腑鐨勫緢澶氭寚浠ゅ拰淇濇姢妯″紡鐜鏍兼牸涓嶅叆錛屽孌靛鍧鏂瑰紡銆佸涓柇鐨勫鐞嗗拰I/O鎿嶄綔鐨勭壒鏉冮棶棰樼瓑銆備負(fù)浜嗗湪淇濇姢妯″紡涓嬪伐浣滆屼涪寮冭繖浜涚▼搴忕殑浠d環(huán)鏄法澶х殑銆傝鎯充竴涓嬶紝濡傛灉Windows鎴?/span>80386澶勭悊鍣ㄦ帹鍑虹殑鏃跺欏甯冧笉鑳借繍琛屼互鍓嶇殑MS-DOS紼嬪簭錛岄偅涔堝氨絳変簬鏀懼純浜嗕竴涓法澶х殑杞歡搴擄紝Windows浠ュ強(qiáng)80386澶勭悊鍣ㄥ彲鑳藉氨浼?xì)钀藉緱鍜岃嬕?guī)灉鏈轟竴鏍風(fēng)殑涓嬪満錛岃繖鏄?/span>Microsoft鍜?/span>Intel閮戒笉鎰跨湅鍒扮殑銆傛墍浠ワ紝80386澶勭悊鍣ㄥ張璁捐浜嗕竴涓櫄鎷?/span>86妯″紡銆?/span>
銆愭壒娉細(xì)鍦ㄤ繚鎶ゆā寮忎笅錛屽吋瀹?/span>8086銆?/span>
铏氭嫙86妯″紡鏄互浠誨姟褰㈠紡鍦ㄤ繚鎶ゆā寮忎笂鎵ц鐨勶紝鍦?/span>80386涓婂彲浠ュ悓鏃舵敮鎸佺敱澶氫釜鐪熸鐨?/span>80386浠誨姟鍜岃櫄鎷?/span>86妯″紡鏋勬垚鐨勪換鍔°傚湪铏氭嫙86妯″紡涓嬶紝80386鏀寔浠誨姟鍒囨崲鍜屽唴瀛樺垎欏點(diǎn)傚湪Windows鎿嶄綔緋葷粺涓紝鏈変竴閮ㄥ垎紼嬪簭涓撻棬鐢ㄦ潵綆$悊铏氭嫙86妯″紡鐨勪換鍔★紝縐頒負(fù)铏氭嫙86綆$悊紼嬪簭銆?/span>
鏃㈢劧铏氭嫙86妯″紡浠ヤ繚鎶ゆā寮忎負(fù)鍩虹錛屽畠鐨?strong style="mso-bidi-font-weight: normal">宸ヤ綔鏂瑰紡瀹為檯涓婃槸瀹炴ā寮忓拰淇濇姢妯″紡鐨勬販鍚?/span>銆備負(fù)浜嗗拰8086紼嬪簭鐨勫鍧鏂瑰紡鍏煎錛岃櫄鎷?/span>86妯″紡閲囩敤鍜?/span>8086涓鏍風(fēng)殑瀵誨潃鏂瑰紡錛屽嵆鐢ㄦ瀵勫瓨鍣ㄤ箻浠?/span>16褰撳仛鍩哄潃鍐嶉厤鍚堝亸縐誨湴鍧褰㈡垚綰挎у湴鍧錛屽鍧絀洪棿涓?/span>1 MB銆備絾鏄劇劧澶氫釜铏氭嫙86浠誨姟涓嶈兘鍚屾椂浣跨敤鍚屼竴浣嶇疆鐨?/span>1 MB鍦板潃絀洪棿錛屽惁鍒欎細(xì)寮曡搗鍐茬獊銆傛搷浣滅郴緇熷埄鐢ㄥ垎欏墊満鍒跺皢涓嶅悓铏氭嫙86浠誨姟鐨勫湴鍧絀洪棿鏄犲皠鍒頒笉鍚岀殑鐗╃悊鍦板潃涓婂幓錛岃繖鏍鋒瘡涓櫄鎷?/span>86浠誨姟鐪嬭搗鏉ラ兘璁や負(fù)鑷繁鍦ㄤ嬌鐢?/span>0锝?/span>1MB鐨勫湴鍧絀洪棿銆?/span>
銆愭壒娉細(xì)铏氭嫙86妯″紡 = 瀹炴ā寮?/span> + 淇濇姢妯″紡銆?/span>
8086浠g爜涓湁鐩稿綋涓閮ㄥ垎鎸囦護(hù)鍦ㄤ繚鎶ゆā寮忎笅灞炰簬鐗規(guī)潈鎸囦護(hù)錛屽灞忚斀涓柇鐨?/span>cli鍜屼腑鏂繑鍥炴寚浠?/span>iret絳夈傝繖浜涙寚浠ゅ湪8086紼嬪簭涓槸鍚堟硶鐨勩傚鏋滀笉璁╄繖浜涙寚浠ゆ墽琛岋紝8086浠g爜灝辨棤娉曞伐浣溿備負(fù)浜嗚В鍐寵繖涓棶棰橈紝铏氭嫙86綆$悊紼嬪簭閲囩敤妯℃嫙鐨勬柟娉曟潵瀹屾垚榪欎簺鎸囦護(hù)銆傝繖浜涚壒鏉冩寚浠ゆ墽琛岀殑鏃跺欏紩璧蜂簡淇濇姢寮傚父銆傝櫄鎷?/span>86綆$悊紼嬪簭鍦ㄥ紓甯稿鐞嗙▼搴忎腑媯(gè)鏌ヤ駭鐢熷紓甯哥殑鎸囦護(hù)錛屽鏋滄槸涓柇鎸囦護(hù)錛屽垯浠庤櫄鎷?/span>86浠誨姟鐨勪腑鏂悜閲忚〃涓彇鍑轟腑鏂鐞嗙▼搴忕殑鍏ュ彛鍦板潃錛屽茍灝嗘帶鍒惰漿縐昏繃鍘伙紱濡傛灉鏄嵄鍙?qiáng)鎿嶄綔绯痪l熺殑鎸囦護(hù)錛屽cli絳夛紝鍒欑畝鍗曞湴蹇界暐榪欎簺鎸囦護(hù)錛屽湪寮傚父澶勭悊紼嬪簭榪斿洖鐨勬椂鍊欑洿鎺ヨ繑鍥炲埌涓嬩竴鏉℃寚浠ゃ傞氳繃榪欎簺鎺柦錛?/span>8086紼嬪簭鏃㈠彲浠ユ甯稿湴榪愯涓嬪幓錛屽湪鎵ц榪欎簺鎸囦護(hù)鐨勬椂鍊欏張瑙夊療涓嶅埌宸茬粡琚櫄鎷?/span>86綆$悊紼嬪簭鍋氫簡鎵嬭剼銆?/span>MS-DOS搴旂敤紼嬪簭鍦?/span>Windows鎿嶄綔緋葷粺涓氨鏄繖鏍峰伐浣滅殑銆?/span>
CButtonST綾諱富瑕佸寘鎷珺tnST.h銆丅tnST.cpp銆丅CMenu.h鍜孊CMenu.cpp鍥涗釜鏂囦歡銆傚鏋滀綘鎵撶畻浣跨敤CButtonST鐨勭獥鍙d笉姝竴涓紝閭d箞鎴戝緩璁綘鍦╒C++鐨刉orkspace | FileView涓鍏ヤ互涓婄殑鍥涗釜鏂囦歡涔嬪悗錛岀劧鍚庡湪SdtAfx.h鏂囦歡涓坊鍔犲悎閫傜殑include璇彞錛屽#include "BtnST.h"銆?br>
鍦ㄦ帴涓嬫潵鐨勫嚑綃囨枃绔犱腑錛屾垜灝嗘牴鎹綔鑰呮彁渚涚殑婕旂ず紼嬪簭鍚戝ぇ瀹朵粙緇岰ButtonST鐨勫悇縐嶅父鐢ㄦ柟娉曘傚湪鏈鍚庝竴綃囨枃绔犱腑錛屽皢涓哄悇浣嶆彁渚汣ButtonST綾葷殑涓枃鏂囨。錛屼互渚涘悇浣嶅湪浠ュ悗鐨勪嬌鐢ㄤ腑鍙傝冦?/p>
鏁堟灉涓錛氬湪鎸夐挳涓婂姞鍏con錛屼嬌Icon鍜屾枃瀛楀悓鏃舵樉紺?
鍋囪鎸夐挳ID涓篒DC_BUTTON1
1. 娣誨姞鎴愬憳鍙橀噺
CButtonST m_btn;
2. 娣誨姞Icon璧勬簮錛岃鍏禝D璁句負(fù)IDI_ICON1
3. 鍦∣nInitDialog鍑芥暟涓垵濮嬪寲鎸夐挳
m_btn.SubclassDlgItem(IDC_BUTTON1,this); m_btn.SetIcon(IDI_ICON1); m_btn.SetFlat(FALSE);
娉ㄦ剰:涓鴻揪鍒版渶濂芥晥鏋滐紝璇鋒牴鎹甀con鐨勫ぇ灝忚皟鏁存寜閽殑澶у皬銆?br>
瀹炰緥錛氭紨紺虹▼搴忎腑鐨凷tandar 鎸夐挳銆?br>
鏁堟灉浜岋細(xì)鏄劇ず騫抽潰鎸夐挳
鍙渶瑕佸湪鏁堟灉涓鐨勫熀紜涓婃妸m_btn.SetFlat(FALSE);璇彞鍘繪帀銆?br>
鏁堟灉涓夛細(xì)浣挎寜閽笂鐨勫浘鏍囧彲鍙?/strong>
鍋囪鎸夐挳ID涓篒DC_BUTTON1
1. 娣誨姞鎴愬憳鍙橀噺
CButtonST m_btn;
2. 娣誨姞涓や釜Icon璧勬簮錛孖D璁句負(fù)IDI_ICON1鍜孖DI_ICON2
IDI_ICON1鏄櫘閫氱姸鎬佺殑鍥炬爣錛孖DI_ICON2鏄寜涓嬫椂鐨勫浘鏍?br>
3. 鍦∣nInitDialog鍑芥暟涓垵濮嬪寲鎸夐挳
m_btn.SubclassDlgItem(IDC_BUTTON1,this); m_btn.SetIcon(IDI_ICON2,IDI_ICON1);
瀹炰緥錛氭紨紺虹▼搴忎腑鐨凥alloween 鎸夐挳銆?
鏁堟灉鍥涳細(xì)璁劇疆鎸夐挳鍦ㄤ笉鍚岀姸鎬佷笅鐨勫簳鑹插拰鏂囧瓧棰滆壊
鍋囪鎸夐挳ID涓篒DC_BUTTON1
1. 娣誨姞鎴愬憳鍙橀噺
CButtonST m_btn;
2. 娣誨姞Icon璧勬簮錛岃鍏禝D璁句負(fù)IDI_ICON1
3. 鍦∣nInitDialog鍑芥暟涓垵濮嬪寲鎸夐挳
m_btn.SubclassDlgItem(IDC_BUTTON1,this); m_btn.SetIcon(IDI_ICON1); m_btn.SetColor(CButtonST::BTNST_COLOR_BK_OUT, RGB(208,208,208)); m_btn.SetColor(CButtonST::BTNST_COLOR_BK_FOCUS, RGB(208,208,208)); m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
鎻愮ず錛歋etColor鍑芥暟鍜孫ffsetColor鍑芥暟鐨勭涓涓弬鏁拌〃紺烘寜閽殑鍚勪釜鐘舵侊紝鍓嶆櫙鑹插氨鏄枃瀛楃殑棰滆壊錛屽畠浠殑鍙栧艱〃紺猴細(xì)
BTNST_COLOR_BK_IN //榧犳爣鏀懼湪鎸夐挳鍐呮椂鐨勮儗鏅壊 BTNST_COLOR_FG_IN, //榧犳爣鏀懼湪鎸夐挳鍐呮椂鐨勫墠鏅壊 BTNST_COLOR_BK_OUT, //鏅氱姸鎬佹椂鐨勮儗鏅壊 BTNST_COLOR_FG_OUT, //鏅氱姸鎬佹椂鐨勫墠鏅壊 BTNST_COLOR_BK_FOCUS, //鎸夐挳琚寜涓嬪悗鐨勮儗鏅壊 BTNST_COLOR_FG_FOCUS, //鎸夐挳琚寜涓嬪悗鐨勫墠鏅壊
瀹炰緥錛氭紨紺虹▼搴忎腑鐨?8×48 icon 鎸夐挳銆乑ip鎸夐挳絳夈?br>
鏁堟灉浜旓細(xì)璁劇疆鍥炬爣鍜屾枃瀛楃殑浣嶇疆
鍋囪鎸夐挳ID涓篒DC_BUTTON1
1.娣誨姞鎴愬憳鍙橀噺
CButtonST m_btn;
2.娣誨姞Icon璧勬簮錛孖D璁句負(fù)IDI_ICON1
3.鍦∣nInitDialog鍑芥暟涓垵濮嬪寲鎸夐挳
m_btn.SubclassDlgItem(IDC_BUTTON1,this); m_btn.SetIcon(IDI_ICON1); m_btn.SetAlign(CButtonST::ST_ALIGN_VERT);
鎻愮ず錛歋etAlign鍑芥暟鐨勭涓涓弬鏁拌〃紺轟綅緗俊鎭紝緙虹渷鎯呭喌涓嬶紝鏂囧瓧鍦ㄥ浘鏍囧彸杈?/p>
ST_ALIGN_HORIZ // 鏂囧瓧鍦ㄥ彸 ST_ALIGN_VERT //鏂囧瓧鍦ㄤ笅 ST_ALIGN_HORIZ_RIGHT// 鏂囧瓧鍦ㄥ乏
瀹炰緥錛氭紨紺虹▼搴忎腑鐨凷earch 鎸夐挳銆?br>
鏁堟灉鍏細(xì)鏍規(guī)嵁Icon鐨勫艦鐘惰緗寜閽殑褰㈢姸
鍋囪鎸夐挳ID涓篒DC_BUTTON1
1.娣誨姞鎴愬憳鍙橀噺
CButtonST m_btn;
2.娣誨姞Icon璧勬簮錛岃鍏禝D璁句負(fù)IDI_ICON1
3.鍦∣nInitDialog鍑芥暟涓垵濮嬪寲鎸夐挳
m_btn.SubclassDlgItem(IDC_BUTTON1,this); m_btn.SetIcon(IDI_ICON1); m_btn.DrawBorder(FALSE); m_btn.SetColor(CButtonST::BTNST_COLOR_BK_OUT, RGB(208,208,208)); m_btn.SetColor(CButtonST::BTNST_COLOR_BK_IN, RGB(208,208,208)); m_btn.SetColor(CButtonST::BTNST_COLOR_BK_FOCUS, RGB(208,208,208));
娉ㄦ剰:涓鴻揪鍒版渶濂芥晥鏋滐紝璇鋒牴鎹甀con鐨勫ぇ灝忚皟鏁存寜閽殑澶у皬銆?br>
騫舵牴鎹疄闄呮儏鍐佃緗儗鏅鑹層傝浜嬪厛灝嗘寜閽殑鏂囧瓧鍘繪帀銆?br>
鏁堟灉涓冿細(xì)娣誨姞Tooltips
鍋囪鎸夐挳ID涓篒DC_BUTTON1
1.娣誨姞鎴愬憳鍙橀噺
CButtonST m_btn;
2.娣誨姞Icon璧勬簮錛岃鍏禝D璁句負(fù)IDI_ICON1
3. 鍦∣nInitDialog鍑芥暟涓垵濮嬪寲鎸夐挳
m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON1);
m_btn.SetTooltipText(_T("This is a tooltip.\r\nMultiline!"));
鏁堟灉涓錛氭敼鍙橀紶鏍囪繘鍏ユ寜閽椂鐨勫艦鐘?瓚呴摼鎺ユ晥鏋?
鍋囪鎸夐挳ID涓篒DC_BUTTON1
1. 娣誨姞鎴愬憳鍙橀噺
CButtonST m_btn;
2. 娣誨姞Icon璧勬簮錛岃鍏禝D璁句負(fù)IDI_ICON1
3. 鍦∣nInitDialog鍑芥暟涓垵濮嬪寲鎸夐挳
m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON1);
m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
m_btn.SetURL("www.scut.edu.cn");
m_btn.SetTooltipText("www.scut.edu.cn");
m_btn.SetBtnCursor(IDC_CURSOR1);
鏁堟灉浜岋細(xì)鑿滃崟鎸夐挳
鍋囪鎸夐挳ID涓篒DC_BUTTON1
1.娣誨姞鎴愬憳鍙橀噺
CButtonST m_btn;
2. 娣誨姞Icon璧勬簮錛岃鍏禝D璁句負(fù)IDI_ICON1
3. 娣誨姞Menu錛孖D璁句負(fù)IDR_MENU
4. 鍦∣nInitDialog鍑芥暟涓垵濮嬪寲鎸夐挳
m_btn.SubclassDlgItem(IDC_BUTTON1,this); m_btn.SetIcon(IDI_ICON1); m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30); m_btn.SetMenu(IDR_MENU, m_hWnd);
娉ㄦ剰:鑿滃崟鐨勬晥鏋滅被浼間笌鍙抽敭鑿滃崟錛屾墍鏈夊湪璁劇疆鑿滃崟閫夐」鏃跺彧璁劇疆涓鍒楀氨澶熶簡銆傚彟澶栬彍鍗曠殑瀹藉害涓庤彍鍗曠殑鏂囧瓧闀垮害鏈夊叧錛屽彲浠ョ敤絀烘牸鍗犱綅鐨勫姙娉曚互杈懼埌鏈浣蟲晥鏋溿?br>
鍦ㄨ彍鍗曚腑寮曞叆浣嶅浘鐨勬柟娉?/strong>
1.娣誨姞ToolBar錛屼緷嬈′嬌鐢∕enu鑿滃崟欏笽D浣滀負(fù)ToolBar鎸夐挳鐨処D銆?br>
2.ToolBar涓婄殑鎸夐挳鍥炬爣灝嗘樉紺哄湪鐩稿簲鐨勮彍鍗曢」涓?br>
灝嗕笂闈唬鐮佷腑鐨刴_btn.SetMenu(IDR_MENU, m_hWnd);
鏀逛負(fù)m_btn.SetMenu(IDR_MENU, m_hWnd, TRUE, IDR_TOOLBAR);
IDR_TOOLBAR涓虹浉搴擳oolBar鐨処D銆?br>
鏁堟灉涓夛細(xì)浣嶅浘鎸夐挳
鍋囪鎸夐挳ID涓篒DC_BUTTON1
1.娣誨姞鎴愬憳鍙橀噺
CButtonST m_btn;
2.娣誨姞浣嶅浘璧勬簮錛孖D璁句負(fù)IDB_BITMAP1
3.鍦∣nInitDialog鍑芥暟涓垵濮嬪寲鎸夐挳
m_btn.SubclassDlgItem(IDC_BUTTON1,this); m_btn.SetBitmaps(IDB_BITMAP1,RGB(0,0,0)); m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
鎻愮ず: 涓婇潰鐨凷etBitmaps鍑芥暟浼?xì)灏嗗泟囦腑棰滆壊鍊間負(fù)RGB(0,0,0)鐨勭偣璁句負(fù)閫忔槑銆?br>
鏁堟灉鍥涳細(xì)鎸夐挳鐒︾偣
鍋囪鎸夐挳ID涓篒DC_BUTTON1
1.娣誨姞鎴愬憳鍙橀噺
CButtonST m_btn;
2. 娣誨姞Icon璧勬簮錛岃鍏禝D璁句負(fù)IDI_ICON1
3. 鍦∣nInitDialog鍑芥暟涓垵濮嬪寲鎸夐挳
m_btn.SubclassDlgItem(IDC_BUTTON1,this); m_btn.SetIcon(IDI_ICON1); m_btn.SetAlign(CButtonST::ST_ALIGN_VERT); m_btn.DrawFlatFocus(TRUE);
鏁堟灉浜旓細(xì)CheckBox鎸夐挳
鍋囪鎸夐挳ID涓篒DC_BUTTON1
1.娣誨姞鎴愬憳鍙橀噺
CButtonST m_btn;
2. 娣誨姞Icon璧勬簮錛孖D璁句負(fù)IDI_ICON1鍜孖DI_ICON2
3.鍦∣nInitDialog鍑芥暟涓垵濮嬪寲鎸夐挳
m_btn.SubclassDlgItem(IDC_CHECK1,this); m_btn.SetIcon(IDI_ICON1,IDI_ICON2); m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
鎻愮ず:
IDI_ICON1涓洪変腑鏃跺欐樉紺虹殑鍥炬爣
IDI_ICON2涓轟負(fù)閫変腑鏃跺欑殑鍥炬爣
鏁堟灉鍏細(xì)閫忔槑鎸夐挳
鍋囪鎸夐挳ID涓篒DC_BUTTON1
1.娣誨姞鎴愬憳鍙橀噺
CButtonST m_btn;
2. 娣誨姞Icon璧勬簮錛孖D璁句負(fù)IDI_ICON1
3.鍦∣nInitDialog鍑芥暟涓垵濮嬪寲鎸夐挳
m_btn.SubclassDlgItem(IDC_BUTTON1,this); m_btn.SetIcon(IDI_ICON1); m_btn.DrawTransparent(TRUE);
鏁堟灉涓冿細(xì)鐗規(guī)畩鐨凱ictureBox
鍒╃敤CButtonST鐨勭壒孌婃樉紺洪鏍鹼紝瀹屽叏鍙互鎶婂畠褰撲綔涓涓狿ictureBox鎺т歡浣跨敤銆傝繖鏃朵竴鑸細(xì)鎶婃寜閽殑灞炴ц緗負(fù)disable銆?br>
瀹炰緥錛氭紨紺虹▼搴忕殑About欏典腑浣跨敤浜咰ButtonST鏉ヤ唬鏇縋ictureBox銆?/p>
涓銆丆WinXPButtonST綾?br>
CWinXPButtonST綾?鏄竴涓狢ButtonST鐨勬淳鐢熺被銆傚畠鐨勭壒鐐規(guī)槸浣跨敤浜哤indowsXP涓殑鍦嗚銆侀粦鑹茶竟妗嗙殑椋庢牸銆傚畠鍖呮嫭WinXPButtonST.h鍜學(xué)inXPButtonST.cpp涓や釜鏂囦歡錛岃岀敱浜庡畠鏄粠CButtonST媧劇敓鑰屾潵鐨勶紝鎵浠ュ湪寮曠敤瀹冩椂,涔熻涓騫跺紩鍏ButtonST鐨勬枃浠躲?br>
浣跨敤錛?br>
1. 寮曞叆鏂囦歡錛屾坊鍔犳枃浠?br>
2. 瀵煎叆鏂囦歡鍚庯紝鍦⊿dtAfx.h鏂囦歡涓坊鍔?/p>
#include "WinXPButtonST.h"
3. 娣誨姞鎴愬憳鍙橀噺
CWinXPButtonST m_btn2;
4. 鍋囪鎸夐挳ID涓篒DC_BUTTON
娣誨姞Icon璧勬簮錛孖D璁句負(fù)IDI_ICON1
5. 鍦∣nInitDialog鍑芥暟涓垵濮嬪寲鎸夐挳
m_btn2.SubclassDlgItem(IDC_BUTTON,this); m_btn2.SetIcon(IDI_ICON1); m_btn2.SetRounded(TRUE);
娉ㄦ剰錛氫絾鏄畠瀛樺湪涓涓笉瓚崇殑鍦版柟錛屽氨鏄寜閽殑鍦嗚鏄敾鍑烘潵鐨勶紝鎸夐挳鐨勫艦鐘朵粛鐒舵槸鍘熸潵鐨勭煩褰€傛墍浠ュ鏋滃湪鏈夎儗鏅壊鐨勭獥鍙d腑浣跨敤璇ユ寜閽殑璇濆氨浼?xì)鏄惧緱鐩稿綋纰嶇湽{?br>
濡傚浘鎵紺猴紝鍦ㄩ粦鑹茬殑鑳屾櫙鑹蹭腑鏄劇ず鍑洪毦鐪嬬殑灝栬錛?br>
瑙e喅鐨勫姙娉曟槸閫氳繃SetColor鍑芥暟浣垮緱鎸夐挳鐨勫簳鑹蹭笌紿楀彛鐨勫簳鑹蹭竴鑷淬?
浜屻丆ShadeButtonST綾?/strong>
CShadeButtonST綾?鏄疌ButtonST鐨勫彟涓涓淳鐢熺被銆傚畠鐨勭壒鐐規(guī)槸鏀寔鏇翠負(fù)澶氭牱鍖栫殑鑳屾櫙錛岄氳繃SetShade鍑芥暟鍙互涓烘寜閽緗?縐嶄笉閫氱殑鑳屾櫙鏁堟灉銆傚畠鍖呮嫭鍥涗釜鏂囦歡錛屽畠浠垎鍒槸CeXDib.h銆丆eXDib.cpp銆丼hadeButtonST.h鍜孲hadeButtonST.cpp銆傚湪寮曠敤瀹冩椂,鍚屾牱瑕佷竴騫跺紩鍏ButtonST鐨勬枃浠躲?br>
浣跨敤錛?br>
1.寮曞叆鏂囦歡錛屾坊鍔犳枃浠?br>
2.瀵煎叆鏂囦歡鍚庯紝鍦⊿dtAfx.h鏂囦歡涓坊鍔?br>
#include "ShadeButtonST.h"
3.娣誨姞鎴愬憳鍙橀噺
CShadeButtonST m_btn3;
4.鍋囪鎸夐挳ID涓篒DC_BUTTON3
娣誨姞Icon璧勬簮錛孖D璁句負(fù)IDI_ICON1
5.鍦∣nInitDialog鍑芥暟涓垵濮嬪寲鎸夐挳
m_btn3.SubclassDlgItem(IDC_BUTTON3,this); m_btn3.SetIcon(IDI_ICON1); m_btn3.SetShade(CShadeButtonST::SHS_METAL);
涓嬮潰緇欏嚭鍚勭鑳屾櫙鏁堟灉鍜屽搴旂殑鍙傛暟鍊箋?br>