此段代碼在MFC下顯式一個(gè)文檔。
CMfcsView : public CView;
void CMfcsView::OnDraw(CDC* pDC)//在視圖上顯示,CDC設(shè)備描述符表
{
CMfcsDoc* pDoc = GetDocument();//調(diào)用這個(gè)函數(shù)獲得與視圖相連接的文檔指針。如果沒(méi)有相連接的文檔,返回NULL
ASSERT_VALID(pDoc);//此函數(shù)檢測(cè)pDoc指針是否返回NULL。
// TODO: add draw code for native data here
//my
CRect rect,rect1,rect2;
GetClientRect(&rect);//計(jì)算客戶區(qū)的顯示坐標(biāo),賦值給rect
CFont font1,*oldfont;
font1.CreatePointFont(160,_T("隸書"));
oldfont=pDC->SelectObject(&font1);//將字體寫入描述符,并將描述符中的以前的字體使oldfont指向
TEXTMETRIC tm;//這個(gè)結(jié)構(gòu)體包含了有關(guān)物理字體的各種信息,他依賴于當(dāng)前環(huán)境。
pDC->GetTextMetrics((&tm));//自動(dòng)計(jì)算當(dāng)前設(shè)備描述符的字符的寬度和高度等信息
pDC->SetTextColor(RGB(150,163,255));//背景色
pDC->SetBkMode(TRANSPARENT);//是否透明(字體的背景是否覆蓋背景色)
rect1=rect;
rect1.top=20*tm.tmExternalLeading;
rect1.bottom=rect1.top+(tm.tmHeight+20*tm.tmExternalLeading);//將矩形區(qū)域顯示在合適位置
CBrush brush,*oldbrush;
brush.CreateSolidBrush(RGB(0,220,220));
oldbrush=pDC->SelectObject(&brush);//設(shè)置筆刷
pDC->FillRect(rect1,&brush);//畫刷填充矩形
CString Title;
Title.Format(_T("%10s%12s%10s%10s%10s%10s%10s%10s"),"股票代碼","股票名稱","昨收盤價(jià)","開(kāi)盤價(jià)","最高價(jià)","最低價(jià)","收盤價(jià)","成交量");
pDC->DrawText(Title,&rect1,DT_SINGLELINE|DT_CENTER|DT_VCENTER);//顯示Title字符串,在rect1的矩形框內(nèi),后邊設(shè)置顯式格式。如DT_CENTER設(shè)置在矩形框中間顯示
rect2=rect;
rect2.top=3*tm.tmExternalLeading+rect1.bottom;
rect2.bottom=rect2.top+(tm.tmHeight+2*tm.tmExternalLeading);
pDC->FillRect(rect2,oldbrush);//為矩形框設(shè)置畫刷,即將話刷的顏色設(shè)置為畫刷的顏色。
CString Spp;
Spp.Format(_T("%10s%12s%10s%10s%10s%10s%10s%10s"),"24415","中國(guó)石油","13","15","20","14","13","1400");
pDC->DrawText(Spp,&rect2,DT_SINGLELINE|DT_CENTER|DT_VCENTER);//顯示
}