重载CView::OnDraw() 文档显示

此段代码在MFC下显式个文档

CMfcsView : public CView;

void CMfcsView::OnDraw(CDC* pDC)//在视图上显示CDC设备描述符表

{

CMfcsDoc* pDoc = GetDocument;//这个获得和视图相连接文档指针如果没有相连接文档返回NULL

ASSERT_VALID(pDoc);//此检测pDoc指针是否返回NULL

// TODO: add draw code for native data here

//my

CRect rect,rect1,rect2;

GetClientRect(&rect);//计算客户区显示坐标赋值给rect



CFont font1,*oldfont;

font1.CreatePoFont(160,_T("隶书"));

oldfont=pDC->SelectObject(&font1);//将字体写入描述符并将描述符中以前字体使oldfont指向



TEXTMETRIC tm;//这个结构体包含了有关物理字体各种信息他依赖于当前环境

pDC->GetTextMetrics((&tm));//自动计算当前设备描述符宽度和高度等信息



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);//将矩形区域显示在合适位置



CBrush brush,*oldbrush;

brush.CreateSolidBrush(RGB(0,220,220));

oldbrush=pDC->SelectObject(&brush);//设置笔刷



pDC->FillRect(rect1,&brush);//画刷填充矩形

CString Title;

Title.Format(_T("%10s%12s%10s%10s%10s%10s%10s%10s"),"股票代码","股票名称","昨收盘价","开盘价","最高价","最低价","收盘价","成交量");

pDC->DrawText(Title,&rect1,DT_SINGLELINE|DT_CENTER|DT_VCENTER);//显示Title在rect1矩形框内后边设置显式格式如DT_CENTER设置在矩形框中间显示





rect2=rect;

rect2.top=3*tm.tmExternalLeading+rect1.bottom;

rect2.bottom=rect2.top+(tm.tmHeight+2*tm.tmExternalLeading);

pDC->FillRect(rect2,oldbrush);//为矩形框设置画刷即将话刷颜色设置为画刷颜色

CString Spp;

Spp.Format(_T("%10s%12s%10s%10s%10s%10s%10s%10s"),"24415","中国石油","13","15","20","14","13","1400");

pDC->DrawText(Spp,&rect2,DT_SINGLELINE|DT_CENTER|DT_VCENTER);//显示

}
Tags: 

延伸阅读

最新评论

发表评论