www.mxdraw.com
内容索引主面
前一个向上下一个
MxDraw::DrawToDc 方法

把图形中某个区域绘制到CDC对象中

C++
static BOOL DrawToDc(MXDRAWOCXHANDLE hOcx, CDC* pDC, int iDCx, int iDCy, int iDCWidth, int iDCHeight, double dLbx, double dLby, double dRtx, double dRty, COLORREF* pBkColor = NULL, BOOL isDrawTempObject = TRUE, BOOL isDrawNoBufferTempObject = TRUE);
参数 
说明 
MXDRAWOCXHANDLE hOcx 
控件窗口句柄 
CDC* pDC 
输出的CDC设备场景对象 
int iDCx 
在CDC上的输出的左上角X值 
int iDCy 
在CDC上的输出的左上角Y值 
int iDCWidth 
在CDC上的输出的宽度 
int iDCHeight 
在CDC上的输出的高度 
double dLbx 
输出范围的左下角坐标X,文档坐标系统 
double dLby 
输出范围的左下角坐标Y,文档坐标系统 
double dRtx 
输出范围的右上角坐标X,文档坐标系统 
double dRty 
输出范围的右上角坐标Y,文档坐标系统 
COLORREF* pBkColor = NULL 
背景颜色,为NULl取控件的视区背景色 
BOOL isDrawTempObject = TRUE 
是否绘制临时对象 isDrawNoBufferTempObject-是否绘制不带缓存的临时对象 

成功返回TRUE

例程参考sampleEdit.sln中的void CTestCommands::DrawToBmp() 例如:把控件中指定区域中的内容保存到bmp中

        CBitmap bm;
        bm.CreateCompatibleBitmap(&dc,iBmpWidth,iBmpHeight);

        CDC tmpDc;
        tmpDc.CreateCompatibleDC(&dc);
        CBitmap*pOld = tmpDc.SelectObject(&bm);

        if(MxDraw::DrawToDc(MxDraw::GetCurOcxHandle(),
            &tmpDc,0,0,iBmpWidth,iBmpHeight,
            pt1.x,pt1.y,pt2.x,pt2.y
            )
            )
        {
            tmpDc.SelectObject(pOld);
            if(SaveBmp(&bm,&dc,sFileName) )
            {
                AfxMessageBox(_T("保存成功"));
            }
            else
            {
                AfxMessageBox(_T("保存失败"));
            }

        }
        else
        {
            AfxMessageBox(_T("未知原因,保存失败"));
            tmpDc.SelectObject(pOld);
        }
Copyright (c) 2010. All rights reserved.
你认为该帮助怎么样? 发送反馈信息!