生活和工作都要充滿激情,否則你無法體會(huì)到淋漓盡致的快樂與痛苦
在MFC中我們常常要把一些變量于控件對(duì)應(yīng)起來! 并通過UpdateDate來實(shí)調(diào)用DoDataExchange(CDataExchange* pDX)實(shí)現(xiàn)變量信息交換!如:DDX_Text(pDX, IDC_STATICCOUNT, m_sCount); --> value對(duì)應(yīng)把控件ID為IDC_STATICCOUNT的控件與m_sCount變量對(duì)應(yīng)起,用UpdateDate(TRUE)來把IDC_STATICCOUNT控件數(shù)據(jù)寫到m_sCount; 用UpdateDate(FALSE)把m_sCount數(shù)據(jù)讀寫到IDC_STATICCOUNT控件; DDX_Control(pDX, IDC_BSTARTTIME, m_cStartTime);有盡有-->control把控件ID為IDC_BSTARTTIME的控件與m_sCount變量對(duì)應(yīng)起,如BUTTON。此時(shí)我們可以通過m_cStartTime控件變量改變對(duì)應(yīng)控件狀態(tài)!m_cStartTime.EnableWindow(FALSE); 可以改變控件是否可用!如果沒有control對(duì)應(yīng),那么我們可以使用等價(jià)語(yǔ)句:GetDlgItem(IDC_BSTARTTIME)->EnableWindow(TRUE);所以使用控件變量將很大的方便我們寫P!2 關(guān)于mouse按鍵的判斷當(dāng)我們?cè)陂_發(fā)程式的時(shí)候,都要有個(gè)交互的過程,那么這里一要用的mouse,然而我們?nèi)绾伟l(fā)現(xiàn)個(gè)健被按下呢!
些是我們可以通過nFlag來斷定那個(gè)健被按下!nFlag是一個(gè)UINT的變量,它的每一個(gè)bit都代表一定的意思!MK_CONTROL Set if the CTRL key is down.MK_LBUTTON Set if the left mouse button is downMK_MBUTTON Set if the middle mouse button is downMK_RBUTTON Set if the right mouse button is downMK_SHIFT Set if the SHIFT key is down. 我們只要用nFlag & MK_KEYBUTTON, 如果非0這個(gè)健就被按下了, 我們不作if ((nFlag & MK_KEYBUTTON) == MK_KEYBUTTON), 這樣可以使其更加的簡(jiǎn)捷!實(shí)際上用&標(biāo)記來簡(jiǎn)化if語(yǔ)句,這樣可以置位,可以得到一個(gè)正值,否則是0還有一點(diǎn)要注意,在onKeyDown中,WM_KEYDOWN事件只經(jīng)你傳遞大寫字母,而shift,caps loc是通過分開代碼健被傳,如果要區(qū)分大小寫,你必須判斷其是否被按下!
Copyright Copyright T.S Liu