锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 鍦ㄥ涔燱TL涓殑DDX_XXX鏃訛紝鍐欏叆DDX_MAP鏃訛紝 鍏朵腑綰㈣壊閮ㄥ垎緙栬瘧鏃剁鍒頒竴涓棶棰橈紝鎻愮ず璇槸錛?#8220; error C2664: 'BOOL WTL::CWinDataExchange<T>::DDX_Text(UINT,LPTSTR,int,BOOL,BOOL,int)' : cannot convert parameter 2 from 'WTL::CString' to 'LPTSTR'”錛岀洿鎺ュ湪google涓婃悳绱㈣繖涓棶棰橈紝鍩烘湰涓婃病鏈夌湅鍒拌В鍐蟲柟娉曪紝鏈鍚庡彧濂藉幓鏌ユ壘婧愮爜錛屽彂鐜版湁澶勫畾涔変負錛?/p>
璁塊棶搴旂敤紼嬪簭鐨勫叾瀹冪被
鑾峰緱CWinApp:
-鍦–MainFrame,CChildFrame,CDocument,CView涓洿鎺ヨ皟鐢ˋfxGetApp()鎴栫敤theApp
-鍦ㄥ叾瀹冪被涓彧鑳界敤AfxGetApp()
鑾峰緱CMainFrame:
-鍦–MinApp涓敤AfxGetMainWnd()鎴栬卪_pMainWnd
-鍦–ChildFrame涓彲鐢℅etParentFrame()
-鍦ㄥ叾瀹冪被涓敤AfxGetMainWnd()
鑾峰緱CChildFrame:
-鍦–View涓敤GetParentFrame()
-鍦–MainFrame涓敤MDIGetActive()鎴朑etActiveFrame()
-鍦ㄥ叾瀹冪被涓敤AfxGetMainWnd()->MDIGetActive()鎴朅fxGetMainWnd()->GetActiveFrame()
鑾峰緱CDocument:
-鍦–View涓敤GetDocument()
-鍦–ChildFrame涓敤GetActiveView()->GetDocument()
-鍦–MainFrame涓敤
-if SDI:GetActiveView()->GetDocument()
-if MDI:MDIGetActive()->GetActiveView()->GetDocument()
-鍦ㄥ叾瀹冪被涓?nbsp;
-if SDI:AfxGetMainWnd()->GetActiveView()->GetDocument()
-if MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView()->GetDocument()
鑾峰緱CView:
-鍦–Document涓?nbsp; POSITION pos = GetFirstViewPosition();GetNextView(pos)
-鍦–ChildFrame涓?nbsp; GetActiveView()
-鍦–MainFrame涓?nbsp;
-if SDI:GetActiveView()
-if MDI:MDIGetActive()->GetActiveView()
-鍦ㄥ叾瀹冪被涓?nbsp;
-if SDI:AfxGetMainWnd()->GetActiveView()
-if MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView()
]]>
DDX_CONTROL(IDC_EDIT, m_wndEdit)
DDX_TEXT(IDC_EDIT, m_sEditContents)
END_DDX_MAP()
BOOL DDX_Text(UINT nID, _CSTRING_NS::CString& strText, int /*cbSize*/, BOOL bSave, BOOL bValidate = FALSE, int nLength = 0)
{
.
}
鍥犱負騫蟲椂鍦ㄦ煡鐪嬪弬鑰冭祫鏂欐椂錛岀湅鍒扮殑閮芥槸鍛婅瘔鎴戜滑瑕佷嬌鐢–String瑕佸厛瀹氫箟涓?#8220;#define _ATL_USE_CSTRING”錛屽墠闈㈤兘娌℃湁鍐欒繃榪欎釜瀹氫箟錛岄┈涓婂湪google涓婃悳绱笅“_WTL_USE_CSTRING”錛岃繖涓嬪ソ浜嗭紝緇堜簬鎵懼埌瑙g瓟浜嗭細
鍙傛暟璇存槑錛?br> hHandle錛氭槸涓涓簨浠剁殑鍙ユ焺銆?br> dwMilliseconds錛氭槸鏃墮棿闂撮殧銆傚鏋滄椂闂村唴鏄湁淇″彿鐘舵佽繑鍥濿AIT_OBJECT_0錛屽鏋滄椂闂磋秴榪嘾wMilliseconds鍊間絾鏃墮棿浜嬩歡榪樻槸鏃犱俊鍙風姸鎬佸垯榪斿洖WAIT_TIMEOUT銆?br>
WaitForSingleObject鍑芥暟鐢ㄦ潵媯嫻媓Handle瀵硅薄鐨勪俊鍙風姸鎬侊紝褰撳嚱鏁扮殑鎵ц鏃墮棿瓚呰繃dwMilliseconds灝辮繑鍥烇紝浣嗗鏋滃弬鏁癲wMilliseconds涓篒NFINITE鏃跺嚱鏁板皢鐩村埌鐩稿簲鏃墮棿浜嬩歡鍙樻垚鏈変俊鍙風姸鎬佹墠榪斿洖錛屽惁鍒欏氨涓鐩寸瓑寰呬笅鍘伙紝鐩村埌WaitForSingleObject鏈夎繑鍥炵洿鎵嶆墽琛屽悗闈㈢殑浠g爜銆?br>
HANDLE瀵瑰簲鐨勫璞″強榪欎簺瀵硅薄鐘舵佸搴旂殑鎯呭喌鏈夛細
Thread 綰跨▼錛?/span>
褰撶嚎紼嬬粨鏉熸椂錛岀嚎紼嬪璞″嵆琚縺鍙戙傚綋綰跨▼榪樺湪榪涜鏃訛紝鍒欏璞″浜庢湭嬋鍙戠姸鎬併?
Process 榪涚▼錛?/span>
褰撹繘紼嬬粨鏉熸椂錛岃繘紼嬪璞″嵆琚縺鍙戙傚綋榪涚▼榪樺湪榪涜鏃訛紝鍒欏璞″浜庢湭嬋鍙戠姸鎬併?
Change Notification錛?br> 褰撲竴涓壒瀹氱殑紓佺洏瀛愮洰褰曚腑鍙戠敓涓浠剁壒鍒殑鍙樺寲鏃訛紝姝ゅ璞″嵆琚縺鍙戙傛瀵硅薄緋葷敱 FindFirstChangeNotification() 浜х敓銆?/p>
Console Input 錛?/span>
褰揷onsole 紿楀彛鐨勮緭鍏ョ紦鍐插尯涓湁鏁版嵁鍙敤鏃訛紝姝ゅ璞″皢澶勪簬嬋鍙戠姸鎬併侰reateFile 錛堬級鍜孏etStdFile 錛堬級涓ゅ嚱鏁板彲浠ヨ幏寰梒onsole handle 銆?
Event 浜嬩歡錛?/span> Mutex 浜掓枼浣擄細 Semaphore 淇″彿閲?錛?/span>
Event 瀵硅薄鐨勭姸鎬佺洿鎺ュ彈鎺т簬搴旂敤紼嬪簭鎵浣跨敤鐨勪笁涓?Win32 鍑芥暟錛?SetEvent 錛堬級錛?PulseEvent 錛堬級錛?ResetEvent 錛堬級銆?CreateEvent 錛堬級鍜?OpenEvent 錛堬級閮藉彲浠ヤ紶鍥炰竴涓?event object handle 銆?Event 瀵硅薄鐨勭姸鎬佷篃鍙互琚搷浣滅郴緇熻瀹氣斺斿鏋滀嬌鐢ㄤ簬“overlapped ”鎿嶄綔鏃躲傚綋Event嬋媧繪椂錛學aitForSingleObject灝嗕細寰楀埌涓涓猈AIT_OBJECT_0鐨勫箋?/p>
濡傛灉mutex 娌℃湁琚換浣曠嚎紼嬫嫢鏈夛紝浠栧氨鏄浜庢縺鍙戠姸鎬併備竴鏃︿竴涓瓑寰卪utex 鐨勫嚱鏁拌繑鍥炰簡錛宮utex 涔熷氨鑷姩閲嶇疆涓烘湭嬋鍙戠姸鎬併侰reateMutex 錛堬級鍜孫penMutex 錛堬級閮藉彲浠ヨ幏寰椾竴涓?Mutext 鐨?handle 銆?/p>
Semaphore 鏈夌偣鍍弇utex 錛屼絾浠栨湁涓鏁板櫒錛屽彲浠ョ害鏉熷叾鎷ユ湁鑰咃紙綰跨▼錛夌殑涓暟銆傚綋璁℃暟鍣ㄥ唴瀹瑰ぇ浜? 鏃訛紝 semaphore 澶勪簬嬋鍙戠姸鎬侊紝褰撹鏁板櫒鍐呭絳変簬0 鏃訛紝semaphore 澶勪簬鏈縺鍙戠姸鎬併侰reateSemaphore 錛堬級鍜孫penSemaphore錛堬級鍙互浼犲洖涓涓猻emaphore handle 銆?br>
Job錛?br> 鏆傛椂娌℃悳鍒板埌鍐呭銆傘傘傘傘?br>
Waitable timer璁℃椂錛?/span>
濡傛灉璁℃椂鐨勬椂闂撮棿闅斿埌杈炬椂錛屼粬灝卞浜庢縺媧葷姸鎬併侰reateWaitableTimer錛堬級浼犲洖涓涓猈aitable timer handle銆係etWaitableTimer錛堬級錛屽鏋淪etWaitableTimer璋冪敤鏃秝aitable timer宸茬粡鍦ㄨ鏃朵腑錛屽垯涓鍓嶉潰鐨勮鏃訛紝閲嶆柊寮濮嬭鏃躲傝繖涓榪囩▼涓嶄細浣?waitable timer鍙樻垚singled鐘舵併傚彧鏈夊綋瀹氭椂鐨勯棿闅斿埌鏃訛紝waitable timer鎵嶄細鍙樻垚singled鐘舵併侰ancelWaitableTimer 錛堬級涓waitable time瀵硅薄鐨勮鏃躲?/p>
]]>
鏂規(guī)硶浜岋細鑷富娣誨姞鑿滃崟欏?br>