如何定制自己的擴(kuò)展類(lèi)

ID:5281781

大小:187.70 KB

頁(yè)數(shù):6頁(yè)

時(shí)間:2017-12-07

如何定制自己的擴(kuò)展類(lèi)_第1頁(yè)
如何定制自己的擴(kuò)展類(lèi)_第2頁(yè)
如何定制自己的擴(kuò)展類(lèi)_第3頁(yè)
如何定制自己的擴(kuò)展類(lèi)_第4頁(yè)
如何定制自己的擴(kuò)展類(lèi)_第5頁(yè)
資源描述:

《如何定制自己的擴(kuò)展類(lèi)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)

1、如何定制自己的擴(kuò)展類(lèi)做軟件難免為自己寫(xiě)一些類(lèi)之類(lèi)的,那么怎么定制自己的開(kāi)發(fā)類(lèi)呢,下面我給大家說(shuō)一說(shuō)吧,VC提供了一個(gè)類(lèi)的向?qū)С绦?,在那里我們可以快速建立自己的擴(kuò)展類(lèi),這里有2中方式可以打開(kāi)類(lèi)的向?qū)У谝唬褐苯涌旖萱ICTRL+W第二:insert->NewClass說(shuō)明CTRL+w彈出的是類(lèi)向?qū)В氵€的點(diǎn)擊右邊的“AddClass…”->”New”這個(gè)按鈕,這時(shí)出現(xiàn)如下圖,在這里你就可以添加擴(kuò)展類(lèi),如下圖這里我們來(lái)舉個(gè)例子,我們添加一個(gè)CEDIT的擴(kuò)展類(lèi),如下圖在這個(gè)里面我們就可以任意改變文本框的功能和效果,你想要怎么樣就怎么樣,你可以為所欲為,只要你

2、有想象力,下面我們改變一下,例如我們打算把編輯框的背景色改變(當(dāng)然了還有其他的方法也是可以實(shí)現(xiàn)的),這些代碼的添加幾乎全是在我們定制的擴(kuò)展類(lèi)中添加,(下面是我節(jié)選的一段代碼,大家可以研究一下)步驟一:在CEditEx中添私有成員變量CBrushm_EdtBrush;//編輯框改變后刷子的顏色CStringm_str;//編輯框的文本內(nèi)容COLORREFm_CurBackColor;//編輯框當(dāng)前的顏色步驟二:添加成員函數(shù)添加兩個(gè)公有類(lèi)型的成員函數(shù):目的為了提供一個(gè)接口public:voidSetControlFocus();voidSetBkGrn

3、dColor();其定義如下:voidCEditEx::SetControlFocus(){//將變量m_CurBackColor的值設(shè)為黃色m_CurBackColor=RGB(255,255,0);}voidCEditEx::SetBkGrndColor(){//刪除舊的刷子m_EdtBrush.DeleteObject();//創(chuàng)建一個(gè)m_CurBackColor顏色的刷子m_EdtBrush.CreateSolidBrush(m_CurBackColor);CDC*pDC=GetDC();//設(shè)置文字顯示模式,OPAQUE為獨(dú)占模式pDC-

4、>SetBkMode(OPAQUE);//設(shè)置文字的背景顏色pDC->SetBkColor(m_CurBackColor);//選擇刷子pDC->SelectObject(&m_EdtBrush);CRectrc;GetClientRect(&rc);ScreenToClient(&rc);//繪制一個(gè)矩形pDC->Rectangle(0,0,rc.Width(),rc.Height());//設(shè)置文本顏色pDC->SetTextColor(RGB(0,0,0,));//輸出文本pDC->TextOut(2,2,m_str.GetBuffer(m_

5、str.GetLength()));}2)重載虛擬函數(shù)OnChildNotify():將OnChildNotify()函數(shù)的定義為如下形式:BOOLCEditEx::OnChildNotify(UINTmessage,WPARAMwParam,LPARAMlParam,LRESULT*pLResult){//WeonlywanttohandleWM_CTLCOLOREDITmessages-32bitonly//如果消息為WM_CTLCOLOREDIT,則返回基類(lèi)的OnChildNotify函數(shù)if(message!=WM_CTLCOLOREDIT

6、){returnCEdit::OnChildNotify(message,wParam,lParam,pLResult);}HDChdcChild=(HDC)wParam;//設(shè)置文字顏色為黑色,也可以修改為其他顏色SetTextColor(hdcChild,RGB(0,0,0));//設(shè)置背景顏色為m_CurBackColor顏色SetBkColor(hdcChild,m_CurBackColor);returnTRUE;}3)添加三個(gè)windows消息處理函數(shù):ON_WM_SETFOCUS、ON_WM_KILLFOCUS、ON_WM_PAINT

7、,主要是用來(lái)處理編輯框獲得焦點(diǎn)和失去焦點(diǎn)的顏色改變效果。將這三個(gè)函數(shù)定義為如下形式://當(dāng)編輯框獲得焦點(diǎn)時(shí)改變背景顏色為黃色voidCEditEx::OnSetFocus(CWnd*pOldWnd){CEdit::OnSetFocus(pOldWnd);m_CurBackColor=RGB(255,255,0);Invalidate(FALSE);}//當(dāng)編輯框失去焦點(diǎn)時(shí)改變背景顏色為白色voidCEditEx::OnKillFocus(CWnd*pNewWnd){CEdit::OnKillFocus(pNewWnd);//設(shè)置背景顏色為白色,也可

8、以設(shè)為其他顏色m_CurBackColor=RGB(255,255,255);Invalidate(FALSE);}//重

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。
关闭