此段代码在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.CreatePointFont(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);//显示
}