锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 濡備綍鎶涘嚭錛坱hrow錛夌敱CUserException媧劇敓鐨勫紓甯革紵 褰撴垜璇曞浘鎹曡幏錛坈atch錛変竴涓淳鐢熺被寮傚父鏃訛紝鎴戝緱鍒頒互涓嬮敊璇?error C2039:'classCMyException': is
not a member of 'CMyException' 'classCMyException': undeclared
identifier 'IsKindOf': cannot convert parameter 1 from 'int*' to 'const
struct CRuntimeClass*" 寮傚父綾諱竴瀹氳浠嶤UserException涓淳鐢熷嚭鏉ュ悧錛?/strong> 涓嶏紝CUserException涓殑"User"浠呬粎鎸囩敤鎴蜂駭鐢熺殑寮傚父銆傝屾妸瀹冨綋浣滀綘鎵鑳芥淳鐢熺殑鍞竴寮傚父鏄甯歌鐨勮瑙c?/p>
濡備綍浠嶩DC寤虹珛涓涓狢DC綾伙紵 鏈夋椂Windows API灝嗕細緇欎綘涓涓狣C鍙ユ焺錛屼綘鍙互閫氳繃瀹冨緩绔嬩竴涓狢DC綾匯備緥濡傦細涓嬫媺寮忓垪琛ㄣ佺粍鍚堟鍜屾寜閽傞氳繃hDC浣犲皢鎺ユ敹鍒扮粯鍒舵秷鎭備笅闈㈡槸灝咹DC杞崲鎴愪綘鏇寸啛鎮(zhèn)夌殑CDC鐨勭▼搴忔銆備綘涔熷彲浠ュ皢璇ユ妧宸х敤鍦ㄥ叾浠栦換浣昅FC綾誨拰Windows鍙ユ焺鐨勮漿鎹腑銆?/p>
濡備綍浠庣鐩樹笂璇誨彇256鑹蹭綅鍥炬枃浠訛紵 褰撳墠錛孧FC騫朵笉鏀寔鐩存帴璇誨彇鍜屾樉紺篋IB鏂囦歡鍜孊MP鏂囦歡銆傜劧鑰岋紝鏈夊緢澶氭牱渚嬪簲鐢ㄧ▼搴忚兘澶熻鏄庡浣曞畬鎴愯欏逛換鍔°傜涓涓緥瀛愭槸MFC鏍蜂緥紼嬪簭
DIBLOOK銆傛牱渚婱ULTDOCS鐢―IBLOOK鎻愪緵鐨勭浉鍚屾簮浠g爜鏉ヨ鍙栧茍鏄劇ずDIB鏂囦歡鍜孊MP鏂囦歡銆傚叾浠栦袱涓猇C++涓檮甯︾殑渚嬪瓙鏄疭DK杞歡
鍖呬腑鐨凞IBVIEW紼嬪簭鍜孲HOWDIB紼嬪簭銆?/p>
濡備綍鏀瑰彉涓涓鍥劇殑澶у皬錛?/strong> 閫氬父錛屼綘鍙互璋冪敤鍑芥暟MoveWindow錛堬級鏉ユ敼鍙樼獥鍙g殑澶у皬銆傚湪鐢∕FC搴撳紑鍙戠殑搴旂敤紼嬪簭涓紝
瑙嗗浘鏄妗嗘灦紿楀彛鎵鍥寸粫鐨勪竴涓瓙紿楀彛銆備負浜嗘敼鍙樹竴涓鍥劇殑澶у皬錛屼綘鍙互閫氳繃璋冪敤鍑芥暟GetParentFrame()鏉ュ緱鍒版鏋剁獥鍙g殑鎸囬拡錛岀劧鍚庤皟鐢ㄥ嚱鏁?
MoveWindow()鏉ユ敼鍙樼埗紿楀彛鐨勫ぇ灝忋傚綋鐖舵鏋剁獥鍙f敼鍙樺ぇ灝忔椂錛岃鍥句篃浼氳嚜鍔ㄥ湴鏀瑰彉澶у皬鏉ラ傚簲鐖剁獥鍙c?/p>
濡備綍鏀瑰彉涓涓狢FormView鐨勫ぇ灝忥紵 瑕佹兂璇︾粏浜嗚В鐨勮瘽錛屼綘鍙互鐪嬫湁鍏砎isual C錛嬶紜鍩虹鐭ヨ瘑鐨勬枃绔燪98598 銆奤sing CFormView in SDI and
MDI
Applications銆嬨傚熀鏈笂錛屽湪浠嶤FormView綾繪淳鐢熷嚭鏉ョ殑綾諱腑錛屼綘蹇呴』瑕嗙洊鍑芥暟OnInitialUpdate()銆傚叾浠栨湁鍏沖緩绔?
CFormView鐨勭粏鑺傞棶棰橈紝鍙互浠庤鏂囩珷涓幏寰椼?/p>
濡備綍浣跨敤涓涓枃妗fā鏉跨殑鏂拌鍥撅紵 鍦ㄧ敤AppWizard鍒涘緩鐨勫簲鐢ㄧ▼搴忎腑錛屼綘鏈変袱縐嶉夋嫨錛氭敼鍙樺綋鍓嶈鍥劇殑媧劇敓鍏崇郴鎴栬呭緩绔嬩竴涓柊瑙嗗浘騫朵笖鍦ㄤ綘鐨凪DI紼嬪簭涓悓鏃跺埄鐢ㄦ柊瑙嗗浘鍜屽師鍏堢殑瑙嗗浘銆?br>
濡備綍鏀瑰彉瑙嗗浘鐨勮儗鏅壊錛?/strong> 浣犲彲浠ラ氳繃澶勭悊WM_ERASEBKGND娑堟伅鏉ユ敼鍙楥View銆丆FrameWnd鎴朇Wnd瀵硅薄鐨勮儗鏅壊銆傝鐪嬪涓嬬殑紼嬪簭孌碉細 濡備綍寰楀埌褰撳墠瑙嗗浘錛?/strong> 鏈浣蟲柟娉曟槸灝嗚鍥懼綋浣滀竴涓弬鏁版潵浼犻掋傚鏋滀笉鑳借繖鏍峰仛錛屼絾浣犵‘淇″畠鏄綋鍓嶆縺媧繪枃妗e拰褰撳墠嬋媧昏鍥劇殑璇濓紝浣犱篃鍙互寰楀埌璇ヨ鍥俱傚叿浣撶粏鑺傝Visual
C++鏂囩珷Q108587銆奊et Current CDocument or CView from Anywhere銆嬨?/p>
濡備綍鍦ㄤ竴涓枃妗d腑寤虹珛澶氫釜瑙嗗浘錛?/strong> CDocTemplate::CreateNewFrame()鍑芥暟鍒涘緩MFC
MDI搴旂敤紼嬪簭涓殑鏂囨。鐨勯檮鍔犺鍥俱備負浜嗚皟鐢ㄨ鍑芥暟錛岃鎸囧畾涓涓寚鍚慍Document瀵硅薄錛堟寚灝嗕負涔嬪緩绔嬭鍥劇殑鏂囨。錛夌殑鎸囬拡鍜屼竴涓寚鍚戝彲浠庝腑澶嶅埗灞炴х殑
妗嗘灦紿楀彛鐨勬寚閽堛備竴鑸儏褰笅錛岃鍑芥暟鐨勭浜屼釜鍙傛暟涓篘ULL銆? 濡備綍鍦∕DI紼嬪簭涓緱鍒版墍鏈夌殑瑙嗗浘錛?/strong> 浣犲繀欏葷敤涓浜涙枃妗d腑娌℃湁璁拌澆鐨勫嚱鏁幫細 浣犺繕闇瑕佷笌CWinApp鐨勬垚鍛榤_templateList鎵撲氦閬撱?br>
娉ㄦ剰錛氬湪MFC 鐗堟湰4.0涓凡鏀瑰彉銆傜幇鍦ㄥ凡緇忔湁涓涓彨CDocManager鐨勭被鍙互甯姪浣犳樉紺烘墍鏈夌殑瑙嗗浘鍜屾枃妗c傝鍙傝冦奙FC Internals銆嬭幏寰楁洿璇︾粏鐨勪俊鎭?/p>
濡備綍寤虹珛涓涓彲鐢ㄩ紶鏍囨媺鍔ㄧ殑CScrollView綾?/strong> 鍦–IS涓婁粠MSMFC搴撲笅杞紸UTOSV.LZH銆傝繖涓▼搴忓憡璇変綘濡備綍瀹炵幇涓涓緟鍔╂秷鎭驚鐜潵綆$悊榧犳爣鐨勬椿鍔紝騫舵彁渚涗簡閽╂寕鏉ュ浠g爜榪涜瀹氬埗銆傝繖鏄竴涓厤璐硅蔣浠躲?/p>
涓瀹氳鐢ㄨ鍥?鏂囨。緇撴瀯鍚楋紵 MFC騫朵笉涓瀹氳姹備綘浣跨敤鏂囨。/瑙嗗浘緇撴瀯銆傛煡鐪婬ELLO銆?MDI鍜孒ELLOAPP渚嬪瓙鈥曞畠浠氨娌℃湁鐢ㄩ偅縐嶇粨鏋勩傚ぇ澶氭暟MFC鐗規(guī)ч兘鍙互鍦ㄩ潪鏂囨。/瑙嗗浘搴旂敤紼嬪簭涓緱鍒拌繍鐢ㄣ備絾鏄綋浣犱笉鐢ㄦ枃妗?/ 瑙嗗浘緇撴瀯鏃訛紝浣犵‘瀹炰細澶卞幓涓浜涚壒鎬э紝渚嬪鎵撳嵃棰勮鍜岃澶歄LE鐗規(guī)с?/p>
濡備綍寰楀埌褰撳墠鏂囨。錛?/strong> 璇瘋緇嗗弬闃?濡備綍寰楀埌褰撳墠瑙嗗浘錛?绔犺妭銆?/p>
鏂囨。浣曟椂琚瀽鏋勶紵 鍦⊿DI紼嬪簭涓紝紼嬪簭閫鍑哄悗鏂囨。灝辮鍒犻櫎銆傚湪MDI紼嬪簭涓紝涓庤鏂囨。鐩稿叧鐨勬渶鍚庝竴涓鍥懼叧闂椂鏂囨。灝辮鍒犻櫎銆備負浜嗗湪SDI鍜孧DI涓悓鏃剁敤榪欎釜鏂囨。錛屼綘搴旇鍦ㄨ櫄鍑芥暟DeleteContents()鍑芥暟涓垹闄よ鏂囨。鐨勬暟鎹紝鑰屼笉鏄湪鏋愭瀯鍣ㄤ腑銆?/p>
濡備綍寤虹珛澶氭枃妗o紵 涓轟簡鍔犲叆瀵歸檮鍔犳枃妗g被鍨嬬殑鏀寔錛屼綘鍙互鍦–WinApp媧劇敓綾諱腑鍒涘緩鍜屾敞鍐岄檮鍔燙multiDocTemplate瀵硅薄銆傝繖縐嶆柟娉曞凡緇忓湪MULTDOCS鏍蜂緥紼嬪簭涓緱浠ヨ鏄庛傚皢涓涓檮鍔犳枃妗g被鍨嬪姞鍏ュ埌MFC紼嬪簭鐨勪竴鑸楠ゅ涓嬶細 鐢ˋppWizard鏉ュ垱寤轟竴涓柊鐨勬枃妗g被鍜岃鍥劇被銆? 濡備綍寰楀埌涓涓墦寮鏂囨。鐨勫垪琛紵 涓嬮潰鐨勭▼搴忔鎸囨槑濡備綍寰楀埌鐢–DocTemplate瀵硅薄寤虹珛鐨勬墍鏈夋枃妗g殑鎸囬拡鍒楄〃銆?br>
涓嬮潰鐨勭▼搴忔涓紝CMyApp鐢盋WinApp媧劇敓鑰屾潵銆傚彉閲弇_templateList鏄竴涓狢PtrList瀵硅薄錛屽畠鏄疌winApp鐨勬垚鍛樺彉閲忥紝
鍖呭惈涓涓墍鏈夋枃妗fā鏉挎寚閽堢殑鍒楄〃銆傛枃妗fā鏉垮嚱鏁癎etFirstDocPosition()鍜孏etNextDoc()琚敤鏉ュ湪鏂囨。妯℃澘鍒楄〃涓繘琛岃凱浠f潵
寰楀埌姣忎竴涓枃妗fā鏉褲?/p>
鍦ㄥ弬鑰冩墜鍐屾垨鍦ㄧ嚎甯姪涓紝鏈変袱涓狢docTemplate綾葷殑鍏叡鎴愬憳鍑芥暟娌℃湁琚鏄庛傜劧鑰岋紝 榪欎簺鍏叡鎴愬憳鍑芥暟鍦–DocTemplate綾諱腑琚畾涔夛紝騫朵笖涓哄湪鎵撳紑鏂囨。鐨勫垪琛ㄤ腑鍓嶅悗鎼滅儲鎻愪緵浜嗙畝鍗曠殑鏀寔銆?/p>
榪欎簺鍑芥暟濡備笅錛?br>
娉ㄦ剰錛岃繖浠呭MFC3.2鐗堟湰鎴栨洿浣庣増鏈湁鏁堬紝瀵筂FC4.0鐗堟湰璇峰弬鑰冧笅闈細 濡備綍浣挎垜鐨勭▼搴忓湪鍚姩鏃朵笉鍒涘緩涓涓柊鏂囨。錛?/strong> 鍦ㄧ▼搴忕殑InitInstance涓殑ProcessShellCommand鍑芥暟涔嬪墠鍔犲叆錛?cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing 錛堬紞錛? 涓嬮潰鏄父瑙佺殑Afx鍏ㄥ眬鍑芥暟錛?/p>
AfxFormatString1錛氱被浼紁rintf涓鑸湴灝嗗瓧絎︿覆鏍煎紡鍖?/p>
AfxFormatString2錛氱被浼紁rintf涓鑸湴灝嗗瓧絎︿覆鏍煎紡鍖?/p>
AfxMessageBox錛氱被浼糤indows API 鍑芥暟 MessageBox AfxOuputDebugString錛氬皢瀛楃涓茶緭寰闄ら敊瑁呯疆 AfxGetApp錛氳幏寰梐pplication object (CwinApp媧劇敓瀵硅薄)鐨勬寚閽?/p>
AfxGetMainWnd錛氳幏寰楃▼搴忎富紿楀彛鐨勬寚閽?/p>
AfxGetInstance錛氳幏寰楃▼搴忕殑instance handle 錛堜簩錛? CString 涓巆har []涔嬮棿鐨勮漿鎹? 鍦╒C涓紝鎭愭曡繖涓や釜鏄粡甯歌榪涜杞崲鐨勫惂 char str[10] = ”str”; CString sstr = “sstr”; sstr.Format(“%s”,str); strcpy(str,(LPCTSTR)sstr); 錛堜笁錛? 鍏抽棴紼嬪簭: PostQuitMessage(WM_CLOSE); 鎴栬匬ostQuitMessage(WM_DESTROY); 鏇寸粷鐨勬槸鍏抽棴鎵鏈夌殑紼嬪簭錛?:ExitWindows (); 錛堝洓錛? 鍦ㄥ叧闂獥鍙f椂錛屽綋瑕佸鏂囦歡榪涜淇濆瓨鏃訛紝鍙湪榪欓噷娣誨姞鍑芥暟錛?/p>
1.錛夊湪CMainFrame閲岀殑OnClose錛堬級閲岋紝鐢∕essageBox("鍐呭","鏍囬",緇勫悎褰㈠紡);緇勫悎褰㈠紡鍙互鏌ョ湅MSDN鐨凪ESSAGEBOX( ) Function 2.錛夊湪CXXXDoc::SaveModified() 閲岋紝鍙兘鐢ˋfxMessageBox(""); 涓嶈兘鐢∕essageBox錛堬級鍑芥暟 錛堜簲錛? 濡備綍淇敼紿椾綋鐨勬爣棰橈細 1.錛変慨鏀逛富紿楀彛鐨勬爣棰橈細m_pMainWnd->SetWindowText("浣犵殑鏍囬"); 2.錛夊鏋滃湪浣犵殑document綾諱腑榪涜鏀癸紝鍒欑洿鎺ヨ皟鐢⊿etTitle("...")錛屽鏋滃湪浣犵殑view綾諱腑鏀癸紝鍒橤etDocument()->SetTitle("...") 3.錛夊鏋滄兂浣跨獥鍙g殑鏍囬鍏ㄩ儴鏇挎崲錛屽垯鐢細AfxGetMainWnd()->SetWindowText("浣犵殑鏍囬"); 錛堝叚錛? 寰楀埌紿椾綋鐨勬爣棰橈細 1.錛堿fxGetMainWnd()->GetWindowText(); 2.錛夊厛FindWindow()鎵懼埌紿楀彛鐨凥WND,鍦℅etWindowText(); 錛堜竷錛? 鍦ㄥ鏂囨。/瑙嗗浘涓細 1.錛夊瓙紿楀彛鐨勬渶澶у寲錛?/p>
void CChildFrame::ActivateFrame(int nCmdShow) { // TODO: Add your specialized code here and/or call the base class nCmdShow=SW_MAXIMIZE; CMDIChildWnd::ActivateFrame(nCmdShow); } 2.錛夊睆钄藉瓙瀵硅瘽妗嗭細鍦ˋPP綾婚噷鎶婅繖涓ゅ彞璇濆睆钄芥帀 if (!ProcessShellCommand(cmdInfo)) return FALSE; 3.錛夊叧闂瓙紿楀彛錛?/p>
::SendMessage(::AfxGetMainWnd()->m_hWnd, WM_COMMAND,ID_FILE_CLOSE,0); 錛堝叓錛? 鍦ㄨ榪涜嚜瀹氫箟鐨勫厜鏍囧悗錛屽湪縐誨姩鐨勮繃紼嬩腑錛岄紶鏍囩殑褰㈢姸鎬繪槸鍦ㄨ嚜瀹氫箟鍜岄粯璁ょ殑鍏夋爣涔嬮棿鏅冨姩錛屽彲浠ヨ繖鏍瘋В鍐籌紝鍦ㄨ涓殑PreCreateWindow錛堬級涓姞鍏ュ涓嬪嚑鍙ワ細 BOOL CXXXXView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs cs.lpszClass =AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW,0, (HBRUSH)::GetStockObject (WHITE_BRUSH),0); return CView::PreCreateWindow(cs); } 錛堜節(jié)錛? 鎬庢牱紱佹鏀瑰彉紿楀彛鐨勫ぇ灝忓拰涓嶈兘縐誨姩鐨勭獥鍙o細 鍐?CMainFrame鐨凮nCreate鍑芥暟涓姞鍏ワ細 CMenu *pTopMenu=GetSystemMenu(false); pTopMenu->RemoveMenu(4,MF_BYPOSITION);//鏈澶у寲紿楀彛涓嶅彲鐢?/p>
pTopMenu->RemoveMenu(2,MF_BYPOSITION);//size pTopMenu->RemoveMenu(1,MF_BYPOSITION);//浣夸笉鍙Щ鍔?/p>
錛堝崄錛?浣跨獥鍙e緇堝湪鏈鍓嶆柟錛?/p>
鍙鍦ˋpp綾諱腑鐨処nitInstance()鍑芥暟涓姞鍏ヤ互涓嬩唬鐮佸氨鍙互浜? BOOL CwindowOnTopApp:: InitInstance() { //姝ゅ鐣ュ幓浜哣C鑷姩鐢熸垚鐨勪唬鐮?/p>
m_pMainWnd->showWindow(SW_SHOW); m_pMainWnd->UpdateWindow(); m_pMainWnd->SetWindowPos(&CWnd::WndTopMost,0,0,0,0, SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE); Return true; } 杞澆錛岀暀寰呬互鍚庢煡鐪嬨?br> awatch 鎸囧畾涓涓彉閲忥紝濡傛灉榪欎釜鍙橀噺琚鎴栬呰鍐欙紝鍒欐殏鍋滅▼搴忚繍琛岋紝鍦ㄨ皟璇曞櫒涓樉紺轟俊鎭紝騫剁瓑寰呬笅涓涓皟璇曞懡浠ゃ傚弬鑰?span lang="EN-US">rwatch鍜?span lang="EN-US">watch鍛戒護銆?span lang="EN-US"> backtrace 鏄劇ず鍑芥暟璋冪敤寰楁墍鏈夋爤妗嗘灦錛?span lang="EN-US">stack frames錛夌殑 韙抗鍜屽綋鍓嶅嚱鏁扮殑鍙傛暟鐨勫鹼紝bt鏄繖涓懡浠ょ殑綆鍐欍?span lang="EN-US"> break 璁劇疆涓涓柇鐐癸紝榪欎釜鍛戒護闇瑕佹寚瀹氫唬鐮佽鎴栬呭嚱鏁板悕浣滀負鍙傛暟 clear 鍒犻櫎涓涓柇鐐癸紝榪欎釜鍛戒護闇瑕佸埗瀹氫唬鐮佽鎴栬呭嚱鏁板悕浣滀負鍙傛暟 continue 璋冭瘯鍣ㄥ仠姝㈢殑鍦版柟緇х畫鎵ц Ctrl-C 鍦ㄥ綋鍓嶄綅緗仠姝㈡墽琛屾鍦ㄦ墽琛岀殑紼嬪簭錛屾柇鐐瑰湪褰撳墠琛?span lang="EN-US"> disable 紱佹鏂偣鍔熻兘錛岃繖涓懡浠ら渶瑕佺姝㈢殑鏂偣鍦ㄦ柇鐐瑰垪琛ㄧ儲寮曞間綔涓哄弬鏁?span lang="EN-US"> display 鍦ㄦ柇鐐圭殑鍋滄鐨勫湴鏂癸紝鏄劇ず鎸囧畾鐨勮〃杈懼紡鐨勫箋傦紙鏄劇ず鍙橀噺錛?span lang="EN-US"> enable 鍏佽鏂偣鍔熻兘錛岃繖涓懡浠ら渶瑕佸厑璁哥殑鏂偣鍦ㄦ柇鐐瑰垪琛ㄧ儲寮曞間綔涓哄弬鏁?span lang="EN-US"> finish 緇х畫鎵ц錛岀煡閬撳綋鍓嶅嚱鏁拌繑鍥?span lang="EN-US"> ignore 蹇界暐鏌愪釜鏂偣鍒跺畾鐨勬鏁般備緥錛?span lang="EN-US">ignore 4 23 蹇界暐鏂偣4鐨?span lang="EN-US">23嬈¤繍琛岋紝鍦ㄧ24嬈$殑鏃跺欎腑鏂?span lang="EN-US"> info breakpoints 鏌ョ湅鏂偣淇℃伅 info display 鏌ョ湅璁劇疆鐨勯渶瑕佹樉紺虹殑琛ㄨ揪寮忕殑淇℃伅 kill 緇堟褰撳墠debug鐨勮繘紼?span lang="EN-US"> list 鏄劇ず10琛屼唬鐮併傚鏋滄病鏈夋彁渚涘弬鏁扮粰榪欎釜鍛戒護錛屽垯浠庡綋鍓嶈寮濮嬫樉紺?span lang="EN-US">10琛屼唬鐮併?span lang="EN-US"> load 鍔ㄦ佽澆鍏ヤ竴涓彲鎵ц鏂囦歡鍒拌皟璇曞櫒銆?span lang="EN-US"> next 鎵ц涓嬩竴琛岀殑婧愪唬鐮佺殑鎵鏈夋寚浠ゃ傚鏋滄槸鍑芥暟璋冪敤錛屽垯涔熷綋浣滀竴琛屾簮浠g爜錛屾墽琛屽埌姝ゅ嚱鏁拌繑鍥?span lang="EN-US"> nexti 鎵ц涓嬩竴琛岀殑婧愪唬鐮佷腑鐨勪竴鏉℃眹緙栨寚浠?span lang="EN-US"> print 鏄劇ず鍙橀噺鐨勫?span lang="EN-US"> ptype 鏄劇ず鍙橀噺鐨勭被鍨?span lang="EN-US"> return 寮哄埗浠庡綋鍓嶅嚱鏁拌繑鍥?span lang="EN-US"> run 浠庣▼搴忓紑濮嬬殑鍦版柟鎵ц rwatch 鎸囧畾涓涓彉閲忥紝濡傛灉榪欎釜鍙橀噺琚錛屽垯鏆傚仠紼嬪簭榪愯錛屽湪璋冭瘯鍣ㄤ腑鏄劇ず淇℃伅錛屽茍絳夊緟涓嬩竴涓皟璇曞懡浠ゃ傚弬鑰?span lang="EN-US">rwatch鍜?span lang="EN-US">watch鍛戒護銆?span lang="EN-US"> set 璁劇疆鍙橀噺鐨勫箋備緥濡傦細set nval=54 灝嗘妸54淇濆瓨鍒?span lang="EN-US">nval鍙橀噺涓?span lang="EN-US"> step 緇х畫鎵ц紼嬪簭涓嬩竴琛屾簮浠g爜鐨勬墍鏈夋寚浠ゃ傚鏋滄槸璋冪敤鍑芥暟錛岃繖涓懡浠ゅ皢榪涘叆鍑芥暟鐨勫唴閮紝鍗曟鎵ц鍑芥暟涓唬鐮併?span lang="EN-US"> stepi 緇х畫鎵ц紼嬪簭涓嬩竴琛屾簮浠g爜涓殑姹囩紪鎸囦護銆傚鏋滄槸鍑芥暟璋冪敤錛岃繖涓懡浠ゅ皢榪涘叆鍑芥暟鐨勫唴閮紝鍗曟鎵ц鍑芥暟涓殑姹囩紪浠g爜銆?span lang="EN-US"> txbreak 鍦ㄥ綋鍓嶅嚱鏁扮殑閫鍑虹殑鐐逛笂璁劇疆涓涓復鏃剁殑鏂偣錛堝彧鍙嬌鐢ㄤ竴嬈★級銆?span lang="EN-US"> undisplay 鍒犻櫎涓涓?span lang="EN-US">display璁劇疆鐨勫彉閲忔樉紺恒傝繖涓懡浠ら渶瑕佸皢display list涓殑绱㈠紩鍋氬弬鏁般?span lang="EN-US"> watch 鎸囧畾涓涓彉閲忥紝濡傛灉榪欎釜鍙橀噺琚啓錛屽垯鏆傚仠紼嬪簭榪愯錛屽湪璋冭瘯鍣ㄤ腑鏄劇ず淇℃伅錛屽茍絳夊緟涓嬩竴涓皟璇曞懡浠ゃ傚弬鑰?span lang="EN-US">rwatch鍜?span lang="EN-US">watch鍛戒護銆?span lang="EN-US"> whatis 鏄劇ず鍙橀噺鐨勫煎拰綾誨瀷銆?span lang="EN-US"> xbreak 鍦ㄥ綋鍓嶅嚱鏁扮殑閫鍑虹殑鐐逛笂璁劇疆涓涓柇鐐廣?/span>
C2785: 'T InitialStatValue(void)' and 'FD3DCounter InitialStatValue(void)' have
different return types
development\src\d3ddrv\src\D3DStats.h(27) : error
C3637: 'InitialStatValue' : a friend function definition cannot be a
specialization of a function template
development\src\d3ddrv\src\D3DStats.h(27) : error
C2912: explicit specialization; 'FD3DCounter InitialStatValue(void)' is not a
specialization of a function template
鏈鍚庡湪涓涓浗澶栫殑璁哄潧鎵懼埌瑙e喅鏂規(guī)硶錛?br>class FD3DCounter
{
template <class FD3DCounter> friend FD3DCounter InitialStatValue(FD3DCounter()) {
return FD3DCounter();
}
// Constructor.
public:
DWORD RenderCycles,
WaitCycles,
Pixels;
FD3DCounter():
RenderCycles(0),
WaitCycles(0),
Pixels(0)
{}
};
娉ㄦ剰榪欎釜鏃跺欒繕瑕佹敼鍙嬪厓鍑芥暟銆?br>鎶?br>template<class T> T InitialStatValue(int FD3DCounter&) { return 0; }
鏀逛負template <class T> friend T InitialStatValue(T()) {
return T();
}
榪欐牱緙栬瘧鍙互鐢ㄨ繃銆?br>鐪嬫潵鐪熺殑瑕佸ソ濂藉涔犱笅C++妯℃澘浜嗐?br>
]]>
浣犲繀闇閫氳繃浣跨敤DECLARE_DYNAMIC錛堬級鍜孖MPLEMENT_DYNAMIC()瀹忔潵浣夸綘鐨凜MyException綾誨彲浠ュ姩鎬佸湴鍒涘緩銆侰ATCH瀹忓笇鏈涜兘澶熷緱鍒板叧浜庤鎶涘嚭綾葷殑榪愯鏃跺埢淇℃伅銆?/p>
void MyODList::DrawItem(LPDRAWITEMSTRUCT lpDrawItem)
{
CDC myDC;
myDC.Attach(lpDrawItem->hDC);
//鍦ㄦ鎻掑叆鍏朵粬闇瑕佺殑浠g爜銆?br>
//濡傛灉浣犱笉灝嗗彞鏌勫垎紱伙紝瀹冨皢琚垹闄わ紝浠庤屽鑷撮棶棰樸?br> myDC.Detach();
}鍙︿竴涓柟娉曟槸璋冪敤CDC綾葷殑FromHandle鏂規(guī)硶錛?br> CDC * pDC = CDC:FromHandle(lpDrawItem->hDC);
鐩墠榪樹笉娓呮鍝鏂規(guī)硶鏇翠紭瓚娾曚嬌鐢‵romHandle()鐨勯敊璇篃璁鎬細鏇村皯浜涳紝鍥犱負瀹冧笉瑕佹眰浣犲垎紱伙紙detach錛夊彞鏌勩?
鍦ㄧ被ClikethisView涓0鏄庡涓嬪嚱鏁幫細
virtual void OnInitialUpdate();
鍦–likethisView鐨勪唬鐮佷腑錛屽嚱鏁板涓嬶細
void ClikethisView::OnInitialUpdate()
{
//浣跨獥鍙d笌涓誨璇濇鍚屾牱澶у皬
CFormView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit( /*FALSE*/ );
}
涓轟簡鍒涘緩涓涓柊瑙嗗浘錛屼綘鍙互鐢–lassWizard鐢盋View媧劇敓涓涓柊鐨勭被銆傚綋鏂扮被鍒涘緩浠ュ悗錛屽埄鐢ㄦ柊瑙嗗浘鎴栦慨鏀圭敱AppWizard鎻愪緵鐨勮鍥撅紝涓よ呯殑姝ラ鏄浉鍚岀殑銆?br>
淇敼瑙嗙被鐨勫ご鏂囦歡錛屼粠鑰屽皢鎵鏈夊CView綾葷殑寮曠敤鏀瑰悕涓轟綘鎵鎯寵鐨勫悕縐般傛湰渚嬩腑鐨勭被鐢盋ScrollView媧劇敓鑰屾潵銆傞氬父錛岃繖涓楠ゅ寘鎷綾葷殑鏀瑰彉錛岃綾誨皢鐢卞涓嬫柟寮忔淳鐢熻屾潵錛?br>
class CMyView : public CScrollView
淇敼瑙嗙被鐨勫疄鐜版枃浠訛紝浠庤屽皢鎵鏈夊CView鐨勫紩鐢ㄦ敼鍚嶄負浣犳墍鎯寵鐨勫悕縐般傝繖鍖呮嫭灝咺MPLEMENT_DYNCREATE閭d竴琛岀殑璇彞鏀逛負錛?br>
IMPLEMENT_DYNCREATE(CMyView, CScrollView)
灝咮EGIN_MESSAGE_MAP閭d竴琛岀殑璇彞鏀逛負錛?br>
BEGIN_MESSAGE_MAP(CMyView, CScrollView)
騫朵笖灝嗗叾浠栨墍鏈夌殑CView鏀規(guī)垚CScrollView.
鍋囧浣犱慨鏀圭殑瑙嗗浘鏄敱AppWizard鐢熸垚鐨勶紝閭d箞灝變笉闇瑕佷綔鏇村鐨勪慨鏀逛簡銆傝屽鏋滀綘鍦ㄥ垱寤轟竴涓柊瑙嗗浘錛屽厛鍦?
CWinApp::InitInstance()鍑芥暟涓壘鍒板AddDocTemplate()鍑芥暟鐨勮皟鐢ㄣ侫ddDocTemplate()鍑芥暟鐨勭涓?
涓弬鏁版槸RUNTIME_CLASS(CSomeView)錛岀敤CMyView鏉ヤ唬鏇緾SomeView錛屽氨鍙互灝嗗綋鍓嶈鍥炬敼涓烘柊瑙嗗浘銆傚湪MDI搴旂敤紼嬪簭
涓紝浣犲彲浠ュ鍔犵浜屼釜AddDocTemplate()鍑芥暟璋冪敤鏉ヤ嬌鐢ㄥ瑙嗗浘綾誨瀷錛屽皢RUNTIME_CLASS(CSomeView)鏀逛負
RUNTIME_CLASS (CMyView)銆?br>
瑕佹兂鑾峰緱鏇村鐨勪俊鎭鍙傞槄Q99562涓浉鍏蟲枃绔犮奡witching Views in a Single Document Interface Program銆?銆?/p>
BOOL CSampleView::OnEraseBkgnd(CDC* pDC)
鑰屾垜鍒欑敤濡備笅鏂規(guī)硶瑙e喅榪欎釜闂錛?
{
// 璁劇疆鎵瑕佹眰鑳屾櫙鑹茬殑鍒峰瓙
CBrush backBrush(#ff8080);
// 淇濆瓨鏃у埛瀛?br> CBrush* pOldBrush = pDC->SelectObject(&backBrush);
CRect rect;
pDC->GetClipBox(&rect); // 鎿﹂櫎鎵闇鐨勫尯鍩?br> pDC->PatBlt(rect.left, rect.top, rect.Width(), rect.Height(), PATCOPY);
pDC->SelectObject(pOldBrush);
return TRUE;
}HBRUSH dlgtest::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
switch (nCtlColor)
{
case CTLCOLOR_BTN:
case CTLCOLOR_STATIC:
{
pDC->SetBkMode(TRANSPARENT);
}
case CTLCOLOR_DLG:
{
CBrush* back_brush;
COLORREF color;
color = (COLORREF) GetSysColor(COLOR_BTNFACE);
back_brush = new CBrush(color);
return (HBRUSH) (back_brush->m_hObject);
}
}
return(CFormView::OnCtlColor(pDC, pWnd, nCtlColor));
}綆鍗曡鏉ワ紝鐢細
鏉ュ緱鍒版枃妗e拰瑙嗗浘銆備竴涓ソ鐨勬柟娉曟槸灝嗗畠浠皝瑁呭湪浣犵殑CMyDoc鍜孋MyView綾葷殑闈欐佸嚱鏁頒腑錛屽茍涓旀牳瀵瑰畠浠槸鍚﹀睘浜庢紜殑RUNTIME_CLASS銆傜劧鑰岋紝鍋囧榪欎釜瑙嗗浘涓嶆槸褰撳墠嬋媧昏鍥炬垨鑰呬綘鍦ㄨ繍琛孫LE鏈湴嬋媧伙紝榪欐牱灝嗕笉鎴愬姛銆?
((CFrameWnd*) AfxGetApp()->m_pMainWnd))->GetActiveDocument()
鍜岋細
((CFrameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveView()
褰撳簲鐢ㄧ▼搴忚皟鐢ㄥ嚱鏁癈reateNewFrame()鏃訛紝璇ュ嚱鏁板氨鍒涘緩涓涓鏋剁獥鍙e拰鍦ㄨ紿楀彛鍐呯殑瑙嗗浘銆傛鏋剁獥鍙e拰瀹冪殑瑙嗗浘鐨勭被鍨嬬敱涓嶤reateNewFrame()鍑芥暟璋冪敤鎸囧畾鐨勬枃妗g浉鍏崇殑鏂囨。鎽告澘(CDocTemplate)鍐沖畾銆?
Visual C++涓殑CHKBOOK MFC鏍蜂緥紼嬪簭涔熸紨紺轟簡濡備綍涓烘枃妗e緩绔嬮檮鍔犵殑妗嗘灦鍜岃鍥俱傛鏌HKBOOK.CPP鏂囦歡涓殑CChkBookApp::OpenDocumentfile()鍑芥暟銆?
鍙︿竴涓敤鍑芥暟CreateNewFrame()鐨勪緥瀛愭槸MULTVIEW鏍鋒湰紼嬪簭銆?
CreateNewFrame()鍑芥暟寤虹珛浜嗕竴涓鏋跺拰涓涓鍥撅紝鑰屼笉浠呬粎鏄竴涓鍥俱傚亣濡侰reateNewFrame()鍑芥暟涓嶈兘瀹屽叏絎﹀悎浣犵殑闇瑕侊紝鍙弬鑰僀reateNewFrame()鍑芥暟鐨勬簮紼嬪簭鏉ヤ簡瑙e寤虹珛緇撴瀯鍜岃鍥炬墍蹇呴』鐨勬楠ゃ?/p>
CDocument::GetFirstViewPosition(); // DOCCORE.CPP
CDocument::GetNextView(); // DOCCORE.CPP
CMultiDocTemplate::GetFirstDocPosition(); // DOCMULTI.CPP
CMultiDocTemplate::GetNextDoc(); // DOCMULTI.CPP
鐢ㄨ祫婧愮紪杈戝櫒澧炲姞鏂扮殑璧勬簮瀛椾覆鏉ユ敮鎸佹柊鐨勬枃妗g被銆傝鎯崇煡閬撳叧浜庢枃妗f牱鏉垮瓧絎︿覆鏍煎紡鐨勬洿澶氬唴瀹癸紝璇峰弬闃?濡備綍鐞嗚В鏂囨。鏍鋒澘瀛楃涓?銆?br>
鐢ㄨ祫婧愮紪杈戝櫒澧炲姞闄勫姞鐨勫簲鐢ㄧ▼搴忓浘鏍囧拰鑿滃崟璧勬簮銆傛敞鎰忥紝榪欎簺璧勬簮涓瘡涓涓殑ID閮藉繀欏諱笌鍦ㄦ楠?涓垱寤虹殑鏂囨。妯℃澘瀛楃涓茬殑ID鏄浉鍚岀殑銆傝繖涓狪D琚獵multiDocTemplate綾葷敤鏉ヨ瘑鍒笌闄勫姞鏂囨。綾誨瀷鐩稿叧鐨勮祫婧愩?br>
鍦ㄥ簲鐢ㄧ▼搴忕殑InitInstance錛堬級鍑芥暟涓紝鍒涘緩浜嗗彟涓涓狢MultiDocTemplate瀵硅薄騫朵笖鐢–WinApp::AddDocTemplate()鍑芥暟鏉ユ敞鍐屻備緥濡傦細CMultiDocTemplate* pDocTemplate2 = new CMultiDocTemplate(
鏈鍚庯紝灝嗗畾鍒剁殑搴忓垪鍖栧拰緇樺浘浠g爜鍔犲叆鍒頒綘鐨勬柊鏂囨。鍜岃鍥劇被涓?
IDR_DOC2TYPE, RUNTIME_CLASS(CDoc2),
RUNTIME_CLASS(CMDIChildWnd),RUNTIME_CLASS(CView2));
AddDocTemplate(pDocTemplate2);void CMyApp::GetDocumentList(CObList * pDocList)
{
ASSERT(pDocList->IsEmpty());
POSITION pos = m_templateList.GetHeadPosition();
while (pos)
{
CDocTemplate* pTemplate =
(CDocTemplate*)m_templateList.GetNext(pos);
POSITION pos2 = pTemplate->GetFirstDocPosition();
while (pos2)
{
CDocument * pDocument;
if ((pDocument=pTemplate->GetNextDoc(pos2)) != NULL)
pDocList->AddHead(pDocument);
}
}
}
Function virtual POSITION GetFirstDocPosition() const錛?br>
璋冪敤璇ュ嚱鏁板緱鍒板湪鎵撳紑鐨勬枃妗e垪琛ㄤ腑涓庢ā鏉跨浉鍏寵仈鐨勭涓涓枃妗g殑浣嶇疆銆傝繑鍥炵殑POSITION鐨勫艱兘澶熻GetNextDoc鎴愬憳鍑芥暟鍙嶅浣跨敤銆?
Function Virtual CDocument* GetNextDoc(POSITION& rPosition) const錛?br>
rPostion鏄墠闈㈣皟鐢℅etNextDoc
鎴朑etFirstDocPosition鎴愬憳鍑芥暟榪斿洖鐨凱OSITION鍊箋傝繖涓間笉鑳芥槸NULL銆傝皟鐢ㄨ鍑芥暟鏉ュ湪鎵鏈夋墦寮鐨勬枃妗d腑榪涜榪唬銆傝鍑芥暟榪?
鍥炶rPosition鎵鏍囪瘑鐨勬枃妗e茍灝唕Position璁劇疆涓哄垪琛ㄤ腑鐨勪笅涓涓枃妗g殑POSITION鍊箋傚亣濡傛墍媯绱㈢殑鏄垪琛ㄤ腑鐨勬渶鍚庝竴涓枃
妗o紝rPosition灝嗚璁句負絀哄箋?/p>
void CMyApp::DoSomethingToAllDocs()
{
CObList pDocList;
POSITION pos = GetFirstDocTemplatePosition();
while(pos)
{
CDocTemplate* pTemplate = GetNextDocTemplate(pos);
POSITION pos2 = pTemplate->GetFirstDocPosition();
while(pos2)
{
CDocument* pDocument;
if(pDocument = pTemplate->GetNextDoc(pos2))
pDocList.AddHead(pDocument);
}
}
if(!pDocList.IsEmpty()){
pos = pDocList.GetHeadPosition();
while(pos)
{
//涓烘瘡涓涓枃妗h皟鐢–Document鍑芥暟
( (CDocument*)pDocList.GetNext(pos) )
->UpdateAllViews(NULL);
}
}
]]>
涓嶈浠ヤ負涓婇潰鐨勬楠ゆ病鐢?涓鏃︿綘鏈夐棶棰樿閲嶆柊瑁厀indows緋葷粺,鑰屾伆濂戒綘鍙堟病鏈塴inux鍏夌洏鐨勮瘽,榪欎釜鏂囦歡灝辨湁澶х敤浜?閲嶈windows緋葷粺浼氭妸linux鐨刧rub寮曞緇欏垹闄ょ殑.
涓鏃﹂噸瑁厀indows緋葷粺,娌℃硶鍚姩linux鐨勮瘽,棣栧厛涓嬭澆涓涓猯inuxdos(涓涓兘鍦╳indows涓嬫煡鐪媗inux涓殑鏂囦歡鐨勪笢瑗?,鐢ㄥ畠鎵懼埌浣犲仛鐨勯偅涓惎鍔ㄦ枃浠?鎶婂畠鏀懼埌浣犵殑windows涓殑c鐩樹腑.鍐嶄笅涓涓櫄鎷熻蔣鐩榲floppy(鍙互浠巋ttp://download.csdn.net/user/syboo/vfloppy涓嬭澆),鐢ㄨ櫄鎷熻蔣鐩樻壘鍒頒綘鐨刢鐩樹腑鐨勫惎鍔ㄦ枃浠跺氨琛屼簡,榪欐牱鍐嶆庝箞閲嶈windows緋葷粺浣犱篃涓嶇敤鎬曚簡.
]]>
濡傛灉鎯充笅嬈″紑鏈轟笉媯嫻嬬‖鐩橈紝鍙互鍒涘緩濡備笅涓涓┖鐧界殑鏂囦歡鍗沖彲銆?br>
$sudo touch /fastboot
濡傛灉鎯充笅嬈″紑鏈烘嫻嬬‖鐩橈紝鍙互鍒涘緩濡備笅涓涓┖鐧芥枃浠躲?br>
$sudo touch /forcefsck
濡傛灉鎯蟲瘡寮鏈?0嬈℃嫻嬩竴嬈$‖鐩橈紝鐢ㄤ笅闈㈢殑鍛戒護銆?br>
$sudo tune2fs -c 60
濡傛灉鎯充竴鍛ㄦ嫻嬩竴嬈$‖鐩橈紝鐢ㄤ笅闈㈢殑鍛戒護銆?br>
$sudo tune2fs -i 1w
濡傛灉鎯崇煡閬撴洿澶歵une2fs鍛戒護鐨勫唴瀹癸紝鐢ㄤ笅闈㈢殑鍛戒護銆?br>
$man tune2fs
]]>
]]>
gdb 鍛戒護璇﹁В
濡傛灉鎻愪緵浜嗗嚱鏁板悕浣滀負鍙傛暟錛屽垯浠庡嚱鏁板紑澶存樉紺恒傚鏋滄彁渚涗唬鐮佽鐨勭紪鍙蜂綔涓哄弬
鏁幫紝榪欎竴琛屼綔涓哄紑澶存樉紺恒?span lang="EN-US">
]]>

