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

来源:互联网 发布:jquery weui.js文档 编辑:程序博客网 时间:2024/05/07 05:08

 本人已经博客移至:围观IT,更多精彩内容请访问:围观IT

 

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

}

 

 本人已经博客移至:围观IT,更多精彩内容请访问:围观IT