锘??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鐨勫唴瀹瑰彲鑷畾涔夛紝澶勭悊瀹屾垚鍚庝笉瑕佸繕璁版墽琛?鐨勬搷浣滐紝鍚屾涓涓嬪瓧絎︿覆灝監(jiān)K銆傚疄鐜版晥鏋滃涓嬶細
褰撶劧錛岃繖鏄竴涓渶綆鍗曠殑瀹炵幇錛岃繕鏈夊緢澶氶棶棰樻病鏈夊鐞嗭紝姣斿鑷畾涔夎彍鍗曪紝灞忚斀緋葷粺鑿滃崟絳夛紱榪樻湁寰堝宸ヤ綔鍙互鍋氾紝姣斿灝佽鎴愪竴涓嚜瀹氫箟鎺т歡錛屽仛鏇村ソ鐨勬樉紺烘晥鏋滅瓑絳夈備絾鍩烘湰鐨勬濊礬榪樻槸涓鏍風殑錛屾仼錛屽鏋滆皝鏈夋洿濂界殑瀹炵幇鏂規(guī)錛屼篃嬈㈣繋鐣欒█錛岃阿璋㈠厛錛氾級
鍙傜収榪欑瘒鏂囩珷錛屽彲浠ユ悶瀹氬悓鐮佸埗鐨勫瓧絎︿覆杞崲錛屽鏋滄湁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喅鏂規(guī)鏄敤#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>
鍔ㄦ佸垱寤鴻彍鍗曢渶瑕佸厛浜?strong style="FONT-WEIGHT: normal" goog_ds_charIndex="207">瑙?/strong>CMenu綾匯傞氬父鎴戜滑鍒╃敤宸ュ叿緇樺埗涓涓彍鍗曪紝姣忎竴涓彍鍗曢」涓嬮兘鍙互瑙嗕負鏈変竴涓狢Menu綾匯傚畠浠仈緋誨湪涓璧鳳紝褰㈡垚鏍戠姸銆傚吀鍨嬬殑涓涓彍鍗曞搴旇繃鏉ユ槸濡備笅鍥捐繖涓牱瀛愶細
濡備笂錛孋Menu鍙互鍒嗘垚涓夌錛屼竴涓槸Popup錛堥粍鑹詫級錛屼竴涓槸Separator錛堢伆鑹詫級錛屼竴涓槸Item錛堢孩鑹詫級銆傚墠涓ょ閮芥槸娌℃湁ID淇℃伅鐨勶紝Popup鏈変竴涓寚閽堬紝鎸囧悜鍏禨ubMenu錛汭tem淇濆瓨鍚勭淇℃伅鏈塈D鍙互鍝嶅簲浜嬩歡錛汼eparator錛屾仼錛屽熀鏈槸涓絀蜂簩鐧界殑銆?/p>
CMenu鐨凜reateMenu鏂規(guī)硶鍙互鍒涘緩涓涓彍鍗曡祫婧愶紝鐢―eleteMenu錛堝寘鍚墍鏈夊瓙鑿滃崟錛夋垨DestoryMenu鍙互閿姣佽彍鍗曡祫婧愶紝鐢ˋppendMenu鍙互娣誨姞涓涓彍鍗曘備簡瑙h繖浜涘唴瀹癸紝灝卞彲浠ュ紑宸ヤ簡錛岀幇瀹炵幇涓婂浘鎵紺虹殑MainSubMenu1涓嬭彍鍗曠殑鍔ㄦ佸垱寤猴紝浠g爜濡備笅錛?br goog_ds_charIndex="566">
// 鍋囪鍦–hildFrm涓紝璋冪敤璇ユ柟娉曡幏寰楀綋鍓嶇殑涓昏彍鍗曟寚閽?br goog_ds_charIndex="605"> CMenu* mainMenu = AfxGetMainWnd()->GetMenu();
CMenu* subMenu = NULL;
// 閬嶅巻涓昏彍鍗曚笅鐨勫悇綰ц彍鍗曞鎵懼悕涓篗ainSubMenu1鐨勮彍鍗?br goog_ds_charIndex="724">
int menuCount = mainMenu->GetMenuItemCount();
for(int i = 0; i < menuCount; i++)
{
CString menuName;
if(mainMenu->GetMenuStringA(i, menuName, MF_BYPOSITION)
&& menuName == "&MainSubMenu1")
{
drawingMenu = mainMenu->GetSubMenu(i);
break;
}
}
// 縐婚櫎鍘熸湁鐨勮彍鍗曢」
int subMenu1Count = subMenu->GetMenuItemCount();
for(int i = subMenu1Count - 1; i >= 0; i--)
{
subMenu->DeleteMenu(i, MF_BYPOSITION);
}
// 鍔ㄦ佹坊鍔營tem鑿滃崟欏?br goog_ds_charIndex="1248"> for(int i = 0; i < 2; i++)
{CString message = "";
subMenu->AppendMenuA(MF_STRING, ID_BEGIN + i, message.Format("SubSubMenu%i", i);
}
// 娣誨姞鍒嗛殧絎?br goog_ds_charIndex="1429">
subMenu->AppendMenuA(MF_SEPARATOR);
// 娣誨姞寮瑰嚭寮忓瓙鑿滃崟
CMenu * popupMenu = new CMenu();
popupMenu->CreateMenu();
for(int i = 0; i < 2; i++)
{CString message = "";
popupMenu->AppendMenuA(MF_STRING, ID_BEGIN + 2 + i, message.Format("PopupSubMenu%i", i));
}
subMenu->AppendMenuA(MF_POPUP, (UINT_PTR)popupMenu->operator HMENU(), "PopupMenu");
鏈夊嚑涓渶瑕佹敞鎰忕殑鍦版柟錛屼竴涓槸涓昏彍鍗曠殑鎸囬拡鑾峰緱錛屽彲浠ュ弬鑰?a target=_blank>銆奙FC妗嗘灦鍚勯儴鍒嗘寚閽堣幏鍙栨柟寮忋?/a>涓鏂囥傚彟涓涓槸Popup鐨勮彍鍗曞緩绔嬶紝絳栫暐鏄垎鎴愪袱閮ㄥ垎錛屽厛new鍑哄唴瀛樺湪Create鍑鴻祫婧愶紝緙轟竴涓嶅彲銆傛渶鍚庝竴涓槸涓烘瘡涓狪tem鑿滃崟鍚堢悊鍒嗛厤ID錛岃繖浜汭D欏諱簨鍏堥鐣欏嚭鏉ワ紝鍦∕FC涓紝鑷沖皯40000鍒?9000閫氬父閮芥槸娌′漢鐢ㄣ?/p>
榪欎篃灝卞紩鍑轟笅涓涓棶棰橈紝鍗寵彍鍗曚簨浠剁殑鍔ㄦ佺粦瀹氥傛垜浠煡閬撳湪.net涓紝浜嬩歡鏄湡姝e姩鎬佺粦瀹氱殑錛岃孧FC涓殑浜嬩歡閮芥槸鍙兘闈欐佺粦瀹氾紝榪欐槸鐢變袱鑰呯殑緙栬瘧鏂瑰紡鍐沖畾鐨勩傛墍浠ワ紝鍦∕FC涓渶瑕佸畾涔夎彍鍗曚簨浠訛紝浣犻渶瑕佸厛鎸栧ソ鍧戯紙棰勭暀瓚沖ID錛夛紝瑙勫畾姣忎釜鍧戠浠涔堢綏鍗滐紙灝嗕笉鍚岀被鍨嬬殑ID緇戝畾鍒頒笉鍚岀被鍒殑浜嬩歡澶勭悊鍑芥暟涓婏級錛屾渶鍚庢墠鑳芥寜鍧戠緗楀崪錛堜負鎵ц鐩稿簲浜嬩歡鐨勮彍鍗曡緗浉搴旂殑ID錛夈?/p>
鍙互鏈変袱縐嶆柟寮忔潵緇戝畾瀵瑰簲ID澶勭悊鐨勪簨浠訛紝涓涓槸閫氳繃ON_COMMAND_RANGE瀹忥紙鎯充竴涓婳N_COMMAND瀹忎細涓嶄細媧句笂鐢ㄥ満錛燂級鍦∕essageMap閲岀粦瀹氭壒閲忓鐞嗕簨浠剁殑鍑芥暟錛涘彟涓涓槸閲嶈澆PreTranslateMessage鍑芥暟錛屾埅鑾峰茍鍒ゆ柇ID鏉ヨ繘琛屽鐞嗐傛濇兂閮芥槸綾諱技鐨勩傚煎緱娉ㄦ剰鐨勬槸錛岄氬父榪橀渶瑕侀厤濂椾嬌鐢∣N_UPDATE_COMMAND_UI_RANGE鏉ヤ繚璇佸姩鎬佸垱寤虹殑鑿滃崟Enable涓篢rue錛屽惁鍒欏緢鍙兘鑿滃崟涓嶅彲浠ョ偣鍑伙紙鎴戝氨琚儊闂瘋繃寰堜箙錛氾紙錛夈?br goog_ds_charIndex="2382">
|
鑾峰緱CWinApp |
鑾峰緱CMainFrame |
鑾峰緱CChildFrame |
鑾峰緱CDocument |
鑾峰緱CView |
鍦–WinApp涓?/strong> |
|
AfxGetMainWnd() m_pMainWnd |
AfxGetMainWnd()->MDIGetActive() AfxGetMainWnd()->GetActiveFrame() |
SDI:AfxGetMainWnd()->GetActiveView()->GetDocument() MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView()->GetDocument() |
SDI:AfxGetMainWnd()->GetActiveView() MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView() |
鍦–MainFrame涓?/strong> |
AfxGetApp() theApp |
MDIGetActive() GetActiveFrame() |
SDI:GetActiveView()->GetDocument() MDI:MDIGetActive()->GetActiveView()->GetDocument() |
SDI:GetActiveView() MDI:MDIGetActive()->GetActiveView() |
|
鍦–ChildFrame涓?/strong> |
AfxGetApp() theApp |
GetParentFrame() |
|
GetActiveView()->GetDocument() | GetActiveView() |
鍦–Document涓?/strong> |
AfxGetApp() theApp |
AfxGetMainWnd() |
AfxGetMainWnd()->MDIGetActive() AfxGetMainWnd()->GetActiveFrame() |
POSITION pos = GetFirstViewPosition();GetNextView(pos) | |
鍦–View涓?/strong> |
AfxGetApp() theApp |
AfxGetMainWnd() | GetParentFrame() | GetDocument() | |
鍦ㄥ叾浠栫被涓?/strong> |
AfxGetApp() |
AfxGetMainWnd() |
AfxGetMainWnd()->MDIGetActive() AfxGetMainWnd()->GetActiveFrame() |
SDI:AfxGetMainWnd()->GetActiveView()->GetDocument() MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView()->GetDocument() |
SDI:AfxGetMainWnd()->GetActiveView() MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView() |
1. 鍦ㄦ瀯閫犱竴涓嚜瀹氫箟鐨凞ialog瀵硅薄鏃訛紝鎴戜滑浼氫紶鍏ヤ竴涓狢Wnd鐨勬寚閽堣繘鍘伙紝閭d釜鍚嶄負pParent鐨勫璞°備絾褰撴垜鍦―ialog涓皟鐢℅etParent鍑芥暟鐨勬椂鍊欙紝鏃犺浼犺繘鐨勬槸浠涔堟寚閽堬紙姣斿CYourView錛夛紝寰楀埌鐨勮繑鍥炲奸兘鏄寚鍚慍MainFrame鐨勬寚閽堛傛浘緇忕敱浜庤繖涓垜璋冧簡N涔呯殑紼嬪簭錛屾垜鎵胯榪欐槸鐢變簬鎴戝MFC鐨勪簡瑙d笉澶熼犳垚鐨勶紝浣嗚繖鍚嶅瓧涔熷お鍏鋒湁榪鋒儜鎬т簡鍚с?/p>
2. 褰撶劧榪樻湁鑷悕鏄憲鐨刄pdateData鍑芥暟錛屽緢鑽e垢鍦ㄨ繖鐐逛笂鎴戝拰澶у笀涓鏍鳳紝姣忔鐢ㄥ埌鐨勬椂鍊欓兘瑕佸仠涓嬫潵鏌ョ湅涓涓嬫墠鑳藉垎娓呮閭d釜璇″紓鐨刡ool鍙橀噺鐨勬剰涔夈備篃璁歌繖鍦ㄦ湁IDE鐨勬椂鍊欎笉鏄棶棰橈紝浣嗛棶棰樻槸鎴戠湅涔︾殑鏃跺欏氨浼氬緢楹葷儲浜嗐傚垎紱繪垚涓や釜鏄庣‘鍛藉悕鐨勫嚱鏁幫紝涔熻浼氬ソ寰堝銆?/p>
3. ShowWindow銆傛仼灝辨槸瀹冦傜湅鍒拌繖涓悕瀛楋紝涓嶇啛鎮(zhèn)塎FC鐨勪漢搴旇閮戒細瑙夊緱瀹冩槸鐢ㄦ潵鏄劇ず涓涓獥鍙g殑銆備絾...錛屽叾瀹炲畠鍏兼湁鏄劇ず鍜岄殣钘忕獥鍙g殑鍔熻兘錛屽喅瀹氳繖涓鍒囩殑鍙堟槸涓涓寮傜殑bool閲?..
4. MoveWindow鍜孲etWindowPos銆傝繖涓瀵逛笉澶熶笓娉ㄧ殑鍏勫紵銆傚畠浠お寮哄ぇ浜嗭紝鎵鑳藉仛鐨勪簨榪滀笉姝ove鍜孲etPos閭d箞綆鍗曪紝褰撴垜鎯蟲敼鍙樹竴涓獥浣撳ぇ灝忕殑鏃跺欙紝鎴戠炕鏉ヨ鍘葷殑鎵懼嚱鏁幫紝涓囦竾娌℃兂鍒幫紝鍘熸潵鏄繖瀵瑰悕涓嶅壇瀹炵殑鍏勫紵鐨勫伐浣滐紝Faint...
5. GetWindowRect鍜孏etClientRect銆傚叾瀹炰粬浠篃璁告病鏈夐棶棰橈紝鏈夐棶棰樼殑鏄垜錛屾垜涓嶅枩嬈㈢敤寮曠敤閲忎唬鏇夸竴涓矊浼煎簲璇ョ敱榪斿洖鍊煎畬鎴愮殑涓滆タ...
6. SelectObject銆備負浠涔堜綘浼犲叆涓涓柊鐨凮bject錛屽畠榪斿洖涓涓佺殑Object鍛紵涓嶆鎴戜竴涓漢錛屽緢澶氫漢閮借榪欎釜鎼炴檿榪囷紝鍏跺疄鎴戜篃涓嶆槑鐧斤紝涓涓嚱鏁板仛涓や釜鍑芥暟鐨勪簨錛岃繖紜疄鏈夌偣鐑績榪囧害浜嗗惂...
7. afx_msg銆備竴涓案榪滈兘娌¤鐢ㄥ埌鐨勯鐣欓噺錛岃繖鏍風殑涓滆タ鍦∕FC涓湁寰堝...
鍦ㄩ厤緗竴涓熀浜嶰penCasCade鐨勭▼搴忎腑錛屾垜灝遍亣鍒頒簡寰堝楹葷儲銆侻FC鍚戝鍦ㄥ畠鎵鐢熸垚鐨刅iew, Document絳夋灦鏋勭被涓兘娣誨姞浜嗕竴孌靛涓嬩唬鐮侊細
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
鍦―ebug鐘舵佷笅錛圴S浼氫負浣犻粯璁ゆ坊鍔犱竴涓猒DEBUG鐨勯緙栬瘧欏癸級錛屼綘鍦ㄨ綾諱腑璋冪敤鐨刵ew鎿嶄綔絎﹂兘浼氳DEBUG_NEW鎵鍙栦唬錛岃璀︽儠榪欎釜琛屼負錛屽鏋滀綘閲嶈澆榪囨煇涓被鐨刵ew錛屽緢鍙兘灝變細鐢變簬瀹冨鑷存棤娉曠紪璇戦氳繃鎴栬繍琛屼笉姝g‘銆?/p>
闄ゆ涔嬪涓浜涢粯璁ょ殑璁劇疆涔熻娉ㄦ剰錛屽湪VS2005涓槸榛樿鏀寔Unicode鐨勶紝瀹冧細鍦ㄤ綘鐨勭紪璇戦夐」涓姞鍏?D "_UNICODE" /D "UNICODE"銆傝繖灝變細浣垮緱CString鍜屼綘鍙兘鐢ㄥ埌鐨剆td::string瀛樺湪寰堥夯鐑︾殑杞崲闂銆備綘闇瑕佷慨鏀歸」鐩睘鎬т腑General-->Character Set涓簄ot set錛屽皢鍏惰涓簎nunicode錛屼繚璇佷笌std::string鐨勪竴鑷達紙褰撶劧浣犺繕鍙互榪愮敤鍏朵粬鐨勮В鍐蟲柟娉曟弧瓚充綘鐨勯渶姹傦級銆?/p>
鏈夋椂鍊橧DE涔熶細“濂藉績鍔炲潖浜?#8221;錛屾瘮濡傚湪涓涓В鍐蟲柟妗堜腑鏈変袱涓伐紼嬶紝浣犱負A娣誨姞B鐨勭紪璇戜緷璧栵紝鍦ˋ鐨勯摼鎺ラ夐」涓氨浼氭?zhèn)勬?zhèn)勫姞涓婂B鐢熸垚鐨刣ll鐨勫紩鐢ㄣ傚綋浣犳煇澶╂暣鐞嗕唬鐮佸彇娑堜簡榪欎釜渚濊禆鐨勬椂鍊欙紝浣犵獊鐒跺彂鐜拌帿鍚嶇殑鍑虹幇浜嗗緢澶歭ink閿欒銆備笉瑕佹厡寮狅紝鍦ˋ涓坊鍔犱笂B閾炬帴欏瑰氨濂戒簡錛岃繖欏瑰伐浣滃叾瀹炴槸浣犲繀欏昏嚜宸卞仛鐨勶紝鍙槸浣犳坊鍔犱簡渚濊禆緙栬瘧鍣ㄩ潪甯鎬富鍔ㄧ殑甯綘瀹屾垚浜嗐?/p>
涔熻浣犵湅涓婇潰鐨勯敊璇兘寰堢畝鍗曪紝浣嗗鏋滀笉灝忓績錛屼篃璁告湁澶╀篃浼氬儚鎴戜竴鏍鋒繁闄峰叾涓崐澶╃埇涓嶅嚭鏉ャ傛諱箣錛屽湪澶╁ぉ鐢╒S2005寤篗FC宸ョ▼鐨勬椂鍊欙紝鎻愬墠鍋氬ソ涓や歡浜嬨備竴浠舵槸閫氳涓閬嶇郴緇熼粯璁ょ敓鎴愮殑浠g爜錛屽仛鍒板績涓湁鏁幫紝姣忎竴鏉¤帿鍚嶅叾濡欑殑涓滆タ閮借浜嗚В涓涓嬪畠鐨勭敤閫旓紱鍙︿竴浠舵槸鍦ㄥ垰寮濮嬪拰鏀瑰彉浜嗗伐紼嬪睘鎬т箣鍚庢煡鐪嬩竴涓嬩綘鐨勭紪璇戝拰閾炬帴鍛戒護錛屾悶娓呮瀹冨仛浜嗕粈涔堜簨錛屾湁鏃跺欏懡浠よ铏界劧闅捐涓鐐癸紝浣嗙‘瀹炴槸涓鐩簡鐒訛紝浣犲彲浠ヤ笉蹇呮瘡澶╃敤鍛戒護琛岀紪璇戠▼搴忥紝浣嗕竴瀹氳瀵硅繖浜涘懡浠ゅ績濡傛槑闀滐紝浜嗗鎸囨帉鎵嶅ソ銆?/p>