資源描述:
《MFC控件使用方法》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、VC2012下MFC程序各控件的常用方法分類:vc控件2013-02-1616:3294人閱讀評(píng)論(0)收藏舉報(bào)一下控件的用法全部在VC2012下調(diào)試通過(guò),特發(fā)文收藏(部分內(nèi)容來(lái)自或參考自網(wǎng)絡(luò)):StaticText:將ID號(hào)改成唯一的一個(gè),如:IDC_XX,然后進(jìn)一次類向?qū)c(diǎn)確定產(chǎn)生這個(gè)ID,之后更改Caption屬性:GetDlgItem(IDC_XX)->SetWindowText(L"dsgdhfgdffd");設(shè)置字體:CFont*pFont=newCFont;pFont->CreatePointFont(120,_T("華文行楷"));GetDlgItem(IDC
2、_XX)->SetFont(pFont);EditControl:設(shè)置文本:SetDlgItemText(IDC_XX,L"iuewurebfdjf");獲取所有輸入:建立類向?qū)?chuàng)建一個(gè)成員變量(假設(shè)是shuru1,shuru2……)類型選value,變量類型任選。UpdateData(true);GetDlgItem(IDC_XX)->SetWindowText(shuru1);第一句更新所有建立了變量的對(duì)話框組件,獲取輸入的值。第二句將前面的IDC_XX的靜態(tài)文本內(nèi)容改為shuru1輸入的內(nèi)容。若類型選用control:1.設(shè)置只讀屬性:shuru1.SetReadOnl
3、y(true);2.判斷edit中光標(biāo)狀態(tài)并得到選中內(nèi)容(richedit同樣適用)intnStart,nEnd;CStringstrTemp;shuru1.GetSel(nStart,nEnd);if(nStart==nEnd){strTemp.Format(_T("光標(biāo)在%d"),nStart);AfxMessageBox(strTemp);}else{//得到edit選中的內(nèi)容shuru1.GetWindowText(strTemp);strTemp=strTemp.Mid(nStart,nEnd-nStart);AfxMessageBox(strTemp);}其中nS
4、tart和nEnd分別表示光標(biāo)的起始和終止位置,從0開(kāi)始。strTemp.Format方法用于格式化字符串。AfxMessageBox(strTemp)顯示一個(gè)提示對(duì)話框,其內(nèi)容是字符串strTemp。strTemp=strTemp.Mid(nStart,nEnd-nStart)返回一個(gè)被截取的字符串,從nStart開(kāi)始,長(zhǎng)度為nEnd-nStart。如果nStart==nEnd說(shuō)明沒(méi)有選擇文本。注:SetSel(0,-1)表示全選;SetSel(-1,i)表示刪除所選。3.在edit的末尾添加字段:CStringstr;shuru1.SetSel(-1,-1);shuru1
5、.ReplaceSel(str);4.隨輸入自動(dòng)滾動(dòng)到最后一行(richedit同樣適用)shuru1.PostMessage(WM_VSCROLL,SB_BOTTOM,0);注:作密碼使用,設(shè)置密碼掩碼字符用SetPasswordChar('*')方法。5.如何限制edit輸入指定字符創(chuàng)建一個(gè)CEdit的子類,自動(dòng)化,并創(chuàng)建子類的WM_CHAR類型的消息:voidCyxEdit::OnChar(UINTnChar,UINTnRepCnt,UINTnFlags){//TODO:在此添加消息處理程序代碼和/或調(diào)用默認(rèn)值if((nChar>='0'&&nChar<='9')
6、
7、(
8、nChar>='a'&&nChar<='f')
9、
10、(nChar>='A'&&nChar<='F')
11、
12、nChar==VK_BACK
13、
14、nChar==VK_DELETE)//msdn的virtualkey{CEdit::OnChar(nChar,nRepCnt,nFlags);}}如果在對(duì)話框程序中不能正常接收消息,則還需要重載虛函數(shù)PreTranslateMessage:BOOLCMFCApplication3Dlg::PreTranslateMessage(MSG*pMsg){//TODO:在此添加專用代碼和/或調(diào)用基類SendMessage(pMsg->message,p
15、Msg->wParam,pMsg->lParam);returnCDialogEx::PreTranslateMessage(pMsg);//或return0;}這樣才能正常接收VM_CHAR消息。6.如何使用richedit添加AfxInitRichEdit();CxxxApp::InitInstance(){AfxInitRichEdit();.............}注意:如果不添加該方法,可能會(huì)造成對(duì)話框無(wú)法生成或啟動(dòng),程序閃退等現(xiàn)象。7.改變r(jià)ichedit指定區(qū)域的顏色及字體CHARFOR