锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
鏈潃涓嶉噸鍐欏凡鏈夊姛鑳界殑鍘熷垯錛屽湪MFC涓彂鎺樹簡涓鍦堬紝娌″彂鐜版湁鍙敤鐨勭幇鎴愭帶浠訛紝涓婄綉鎼滀簡涓涓嬶紝鍙戠幇鏈変漢鍋氳繃錛屼絾绔熺劧榪樻敹璐瑰嚭鍞紝so faint錛屽彧鑳借嚜宸卞姩鎵嬪仛涓涓?/p>
鍏跺疄鎬濊礬榪樻槸铔畝鍗曠殑錛屽氨鏄斁涓狤dit鎺т歡澶勭悊瀹冪殑閿洏杈撳叆浜嬩歡錛岄槻姝㈠垹闄や箣鍓嶇殑璁板綍鍜屾彁紺轟俊鎭紝榪樿澶勭悊緇撴潫鍛戒護錛屾瘮濡傚洖杞︺佺┖鏍間箣綾葷殑銆備富瑕佹湁浠ヤ笅鍑犱釜姝ラ錛?/p>
1. 灝嗚緭鍏ユ鍐呯殑瀛楃涓插垎孌碉紝姣斿鍒嗘垚涓夋log, tip鍜宑ommand錛屽墠涓ゆ閮戒笉鑳借淇敼錛宑ommand鐨勫唴瀹逛負鍙慨鏀圭殑銆傚湪緇撴潫浜哻ommand杈撳叆鍚庯紝瑕佸悓姝ュ悇瀛楃涓詫紝紺轟緥浠g爜濡備笅錛?/p>
void CMainFrame::InitCommand(CString tip)
{
// 璁板綍鑰佸瓧絎︿覆錛岀被浼間簬UpdateData(true)this->GetText();
// 璁劇疆鏂扮殑log
if(this->m_log != "")
this->m_log += "\r\n";
this->m_log += tip;// 鏇存柊瀛楃涓詫紝綾諱技涓嶶pdataData(false)
this->SetText();// 灝嗗厜鏍囩疆浜庡瓧絎︿覆鐨勫熬閮紙鍚﹀垯鍏夋爣浼氬湪涓寮濮嬬殑浣嶇疆錛?/p>
((CEdit *)m_commandDialogBar.GetDlgItem(IDC_COMMAND))->SetSel(this->m_log.GetLength(),
this->m_log.GetLength());
}
2. 閲嶈澆PreTranslateMessage浜嬩歡錛屽鐞嗛敭鐩樹俊鎭紝紺轟緥浠g爜濡備笅錛?/p>
BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == WM_KEYDOWN) // 澶勭悊閿洏鎸変笅浜嬩歡
{
// 鍒ゆ柇鏄惁鏄湪鑴氭湰杈撳叆妗嗕笂杈撳叆鐨?/p>if(GetFocus() == m_commandDialogBar.GetDlgItem(IDC_COMMAND))
{
// 濡傛灉閫夋嫨鐨勬槸闈炴鍦ㄨ緭鍏ョ殑鏂囧瓧錛屾姏寮冭繖涓簨浠?/p>DWORD selectedRegion = ((CEdit *)m_commandDialogBar.GetDlgItem(IDC_COMMAND))->GetSel();
int selectedStart = LOWORD(selectedRegion);
int selectedEnd = HIWORD(selectedRegion);if(selectedStart != selectedEnd && selectedStart < m_log.GetLength())
return true;if(pMsg->wParam == 8 && selectedStart <= m_log.GetLength()) // 闃繪鍒犻櫎涔嬪墠鐨勬枃瀛?br goog_ds_charIndex="1307"> return true;
if(pMsg->wParam == 13 || pMsg->wParam == 32) // 褰撹緭鍏ョ┖鏍兼垨鍥炶濺鏄彂閫佹秷鎭?br goog_ds_charIndex="1390"> this->SendCommand();
}
}return CMDIFrameWnd::PreTranslateMessage(pMsg);
}
鍏朵腑SendCommand鐨勫唴瀹瑰彲鑷畾涔夛紝澶勭悊瀹屾垚鍚庝笉瑕佸繕璁版墽琛?鐨勬搷浣滐紝鍚屾涓涓嬪瓧絎︿覆灝監K銆傚疄鐜版晥鏋滃涓嬶細
褰撶劧錛岃繖鏄竴涓渶綆鍗曠殑瀹炵幇錛岃繕鏈夊緢澶氶棶棰樻病鏈夊鐞嗭紝姣斿鑷畾涔夎彍鍗曪紝灞忚斀緋葷粺鑿滃崟絳夛紱榪樻湁寰堝宸ヤ綔鍙互鍋氾紝姣斿灝佽鎴愪竴涓嚜瀹氫箟鎺т歡錛屽仛鏇村ソ鐨勬樉紺烘晥鏋滅瓑絳夈備絾鍩烘湰鐨勬濊礬榪樻槸涓鏍風殑錛屾仼錛屽鏋滆皝鏈夋洿濂界殑瀹炵幇鏂規錛屼篃嬈㈣繋鐣欒█錛岃阿璋㈠厛錛氾級
鍙傜収榪欑瘒鏂囩珷錛屽彲浠ユ悶瀹氬悓鐮佸埗鐨勫瓧絎︿覆杞崲錛屽鏋滄湁unicode鍒伴潪unicode鐨勮漿鎹㈤棶棰橈紝榪橀渶瑕佸彟瀵婚珮鎷涖傛垜閫氬父灝辨槸褰掍竴鍖栵紝鎶婂伐紼嬪睘鎬?->General涓殑Character set緇熶竴閫変負no set鎴杣nicode銆傛瘡姣忔鏃訛紝鎴戦兘浼氬嚭濂囩殑鎯沖康C#銆傘傘?/p>
寰堝鏃跺欙紝鑳界敤妯℃佸璇濇鐨勬儏鍐典笅錛岄兘浼氱敤妯℃佺殑銆傝櫧鐒?a title=Copper target=_blank>Copper 鑰佸厛鐢熸寚鐫榧誨瓙鑻﹀彛濠嗗績鐨勬暀瀵間簡鎴戜滑錛屼絾鏈夋椂鍊欎漢鎳掕劯鐨篃灝卞帤浜嗭紝鏃犳墍璋撲簡銆備絾錛屼笘鐣屾繪槸寰堟畫閰鳳紝寰堝鏃跺欙紙姣斿闇瑕佸湪澶勭悊瀵硅瘽妗嗕簨浠剁殑鏃跺欎篃鑳藉搷搴旂獥浣撲簨浠訛級錛屾垜浠笉寰椾笉鍘婚潰瀵歸潪妯℃佸璇濇銆傚叾瀹炰簡瑙d簡璧勬簮綆$悊鐨勬ā寮忥紝灝卞儚鎵掑紑浜嗛潪妯℃佸璇濇鍗婇伄鐨勭惖鐞訛紝鍙互寰堝潶鐒剁殑闈㈠浜嗐?/p>
妯℃佸璇濇鐨勮祫婧愬垎鎴愪袱縐嶏紝涓縐嶆槸鍐呭瓨璧勬簮錛屼竴縐嶆槸闈炲唴瀛樿祫婧愩傚崟鐪嬮潪鍐呭瓨璧勬簮鐨勭鐞嗭紝鍏跺疄鍜屽唴瀛樿祫婧愮殑綆$悊鍘熺悊鏄竴鏍風殑銆傚湪C++涓紝鍐呭瓨璧勬簮鐨勭鐞嗚絀秐ew鍜宒elete閰嶅錛屽悓鐞嗭紝闈炲唴瀛樿祫婧愮殑綆$悊闇瑕乧reate鍜宒estroy鍑哄弻鍏ュ銆傚湪榪欑瘒鏂囩珷涓紝鍩烘湰浣撶幇浜嗛潪妯℃佸璇濇璧勬簮綆$悊鐨勪竴涓熀鏈ā寮忥紝鍗沖唴瀛樿祫婧愮鐞嗗拰闈炲唴瀛樿祫婧愬悓姝ャ?
榪欐牱閫氳繃鍒ゆ柇鍐呭瓨璧勬簮鏄惁鍗犵敤錛堝嵆鎸囬拡鏄惁涓虹┖錛夊氨鍙互鍒ゆ柇闈炲唴瀛樿祫婧愮殑浣跨敤鐘跺喌銆傚綋鎸囬拡涓虹┖錛岃鏄庡璇濇榪樻湭鍒涘緩錛堥潪鍐呭瓨璧勬簮鏈敵璇鳳級錛涘綋鎸囬拡涓嶄負絀猴紝瀵硅瘽妗嗗凡鍒涘緩錛屾澶勪簬鍙鎴栦笉鍙鐘舵併傝繖鏍峰皢涓ら儴鍒嗚祫婧愮鐞嗗悎騫跺湪涓璧蜂簡錛屽彧闇瑕佸垽鏂寚閽堟槸鍚︿負絀哄氨鍙互浜嗚В瀵硅瘽妗嗚祫婧愮殑鐘舵併備竴浜涘唴瀛樼鐞嗙殑鎵嬫錛屾瘮濡傜被綆$悊鎬濇兂錛堝皢delete鍜宒estroy鏀懼埌綾葷殑鏋愭瀯鍑芥暟涓級錛屽彲浠ュ疄鐜拌祫婧愮殑鑷姩綆$悊銆?
涓轟簡瀹炵幇榪欑綆$悊妯″紡錛岃娉ㄦ剰浠ヤ笅鍑犵偣錛?
1. 鍦ㄥ爢涓婂垎閰嶉潪妯℃佸璇濇鐨勫唴瀛樿祫婧愶紝閫氫織涓鐐圭殑鎻忚堪灝辨槸涓嶈鐢ㄨ繖縐嶆柟寮忥細CXXDialog t;鑰屾槸鐢ㄨ繖縐嶆柟寮忥細CXXDialog *t = new CXXDialog();鏉ュ垎閰嶅唴瀛樸?
2. 鍚屾鏋勯犲拰鏋愭瀯榪囩▼錛屽氨鏄鏈塶ew涓瀹氶厤涓婁釜create錛宒elete涓瀹氳鍕炬惌涓涓猟estroy銆?
3. 琚玠elete鐨勫唴瀛樻寚閽堜竴瀹氳緗┖錛屼篃灝辨槸涓嬮潰涓ゅ彞瑕佹帴韙佃岃嚦錛歞elete xx;鍜寈x == null;銆傚叾瀹炶繖涔熸槸鏅氱殑鍐呭瓨綆$悊闇瑕侀伒寰殑涓涓壇濂戒範鎯?
浜嗚В浜嗚繖浜涳紝闈炴ā鎬佸璇濇涔熶細鍙湁娓╂煍娌℃湁鐙扮嫗銆?/p>
棣栧厛錛岃瀵瑰ご鏂囦歡榪涜澶勭悊錛屼繚璇佷笉浼氬嚭鐜伴噸瀹氫箟鐨勯敊璇傝繖涓簲璇ユ瘡涓漢閮戒細錛岄氬父鏈変袱縐嶅仛娉曪細
1. 鍦?cpp鏂囦歡涓坊鍔犱繚鎶わ紝姣斿鍦?cpp鏂囦歡涓坊鍔狅細
#ifndef _XX_H_
#define _XX_H_
#include "xx.h"
#endif
2. 鍦?h涓坊鍔犱繚鎶わ紝姣斿鍦▁x.h鏂囦歡涓坊鍔狅細
#ifndef _XX_H_
#define _XX_H_
// 澶存枃浠跺0鏄庡唴瀹?br goog_ds_charIndex="284">#endif
_XX_H_鏄垜姣旇緝涔犳儻鐨勫懡鍚嶆柟寮忥紝鍏朵粬鐨勫懡鍚嶆柟寮忥紝姣斿__XX__H__錛孹X_H絳夌瓑錛屽彧瑕佽凍澶烾nique灝卞ソ銆傚緩璁嬌鐢ㄧ浜岀鏂瑰紡榪涜閲嶅畾涔夌殑淇濇姢錛屼竴鍔蟲案閫歌屼笖鍏鋒湁閫氱敤鎬э紝浠諱綍浜烘嬁鏉ュ氨鑳界敤錛屼笉闇瑕佽冭檻淇濇姢闂銆傚綋鐒訛紝濡傛灉鍦╒S錛?3浠ヤ笂鍚э紵錛変笅錛屾渶濂界殑瑙e喅鏂規鏄敤#pragma once錛屾洿涓虹畝鍗曟湁鏁堛?/p>
鍏舵錛屾渶濂藉皢鎵鏈夊ご鏂囦歡闇瑕佺敤鍒扮殑鑷畾涔夌被錛堟垨鍑芥暟錛夐兘鍦ㄥ畾涔夊墠澹版槑涓涓嬶紝姣斿鍦▁x.h鐨勭被xx涓渶瑕佺敤鍒皔y.h涓殑yy綾伙紝閭d箞鏈濂藉仛浠ヤ笅鐨勫鐞嗭細
class yy;
class xx
{
// 瀹炵幇鍐呭
};
榪欐牱灝卞彲浠ヤ繚璇佸ご鏂囦歡寮曠敤鐨勬搴忎笉浼氬緇撴灉閫犳垚褰卞搷銆?/p>
閫氬父錛屼繚璇佷互涓婁袱鐐癸紝閫氬父娑夊強鍒扮被浜掓寚鐨勯棶棰橀兘鍙互瑙e喅銆傚綋鐒跺鏋滃ぉ鐢熷氨鏈夎璁¢棶棰橈紝鏃犺濡備綍閮芥槸娌℃湁鍔炴硶鐨勶紝姣斿錛?/p>
// xx.h
class xx
{
yy t;
};// yy.h
class yy
{
xx t;
};
涓嶉毦鐪嬪嚭錛岃繖鏄釜閫掑綊瀹氫箟錛岀紪璇戝櫒鏃犳硶紜畾綾粁x鍜寉y鐨勫ぇ灝忥紝灝辨棤娉曢氳繃緙栬瘧銆備竴縐嶈В鍐崇瓥鐣ユ槸閲囩敤鎸囬拡錛屾瘮濡傦細
// xx.h
class xx
{
yy* t;
};// yy.h
class yy
{
xx* t;
};
褰撶劧錛屽叿浣撴儏鍐靛叿浣撳垎鏋愶紝鎻愬彇涓涓洿楂樺眰鐨勭被絳夋墜孌甸兘鍙互鑰冭檻銆?/p>
榪樻湁涓涓棶棰橈紝鎴戜竴鐩翠篃蹇冨瓨鐤戦棶錛屽氨鏄ご鏂囦歡緇勭粐闂銆傚湪VS涓緩绔嬩竴涓狹FC宸ョ▼錛岄兘浼氫駭鐢熶竴瀵箂tdafx鏂囦歡錛屾寜鐓ц繖縐嶆濇兂鎴戜滑鎶婂伐紼嬩笅閫氱敤鐨勫ご鏂囦歡閮芥斁鍏tdafx.h涓紝鍦?cpp鏂囦歡鐨勬渶寮濮嬬粺涓#include "stdafx.h"錛岃繖鏍峰氨鍙互鍦?h鏂囦歡涓紩鐢ㄥ緢灝戠殑澶存枃浠躲?/p>
榪欑絳栫暐鍦ㄥ崟宸ョ▼鏃跺緢濂界敤錛岀浉褰撲簬鍋氫簡澶存枃浠剁粍緇囩駭鍒殑閲嶇敤錛屼絾瀹冭繚鍙嶄簡鎴戜竴鐩存仾瀹堢殑涓涓師鍒欏嵆璋佺殑澶存枃浠惰皝璐熻矗錛屾寚.h鍜?cpp鍚勮嚜璐熻矗鍚勮嚜鎵闇鐨勫ご鏂囦歡銆備簬鏄湪璺ㄥ伐紼嬬殑鏃跺欎細鍑虹幇涓浜涢棶棰樸傛瘮濡傚湪B宸ョ▼B鐨勬煇涓?h涓紩鐢ㄤ簡宸ョ▼B涓殑涓涓ご鏂囦歡錛岀敱浜庣紪璇戞搴忛棶棰橈紝榪欎釜澶存枃浠跺彲鑳芥棤娉曡緙栬瘧銆備笉鐭ラ亾澶у閮藉浣曞鐞嗗ご鏂囦歡緇勭粐闂鐨勶紝鏈涙寚鏁欍?/p>
鍏跺疄鐭ラ亾浜嗘湁榪欎箞涓笢瑗匡紝鍓╀笅鐨勯棶棰橀兘涓嶈兘縐板仛闂浜嗭紝鍏朵嬌鐢ㄥ拰CToolBar綾諱技錛屽彲浠ラ氳繃http://msdn2.microsoft.com/zh-cn/library/wc9sxcw1(VS.80).aspx涓嬭澆MSDN紺轟緥錛屽綋鐒朵篃鍙互鍦ㄦ湰鏈虹殑MSDN鎼滅儲CDialogBar鑾峰緱銆?/p>