把图形中某个区域绘制到CDC对象中
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);
}