我现在要打印图形可视部分的打印,应该怎么做啊?
图形是在0.1mm模式下绘制的,在OnPrint()函数中把映射模式改为MM_TWIPS,
如果我没有添加什么代码的话,程序就是出图形最做上角的那部分,但是我只要打印可以看见的那部分,我用InvalidateRect()函数,可是没有什么变化?这个到底应该怎么弄呢?
图形是在0.1mm模式下绘制的,在OnPrint()函数中把映射模式改为MM_TWIPS,
如果我没有添加什么代码的话,程序就是出图形最做上角的那部分,但是我只要打印可以看见的那部分,我用InvalidateRect()函数,可是没有什么变化?这个到底应该怎么弄呢?
解决方案 »
- 申请VC/MFC--基础版块版主
- 如何定义子窗口的消息处理函数?
- 我用CString在截取时是一个字节一个字节的截取。这样如果内容里有英文和汉字就有可能出现乱码。我想它是一个汉字时就取一个汉字。是英文
- source code for Mp3 file reading?
- 脱离VS开发环境就不运行
- 请问斑竹
- 运行addnew语句为什么会出错?
- 这个问题怎样解决
- 非模态对话框的生成,用createdialog与create,有什么区别。create生成的怎么带回碉函数啊!
- 如何读出一个文件的头记录?
- 向别的窗口sendmessage有可能被屏蔽吗?能绕过去吗?(解决问题后+分)
- 如何显示一个html文件
我在Onprint函数中是这样写的,可是他依然是那样的结果,还是只能打印最左上角,!
void CTideView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
pDC->SetMapMode(MM_TWIPS);
int x, y;
CRect rect;
GetClientRect(&rect);
x = GetScrollPos(SB_HORZ);
y = GetScrollPos(SB_VERT);
CRect rect1(x, y, x + rect.right, y + rect.bottom);
// pDC->DPtoLP(&rect1);
CRgn rgn;
rgn.CreateRectRgn(rect1.left, rect1.top, rect1.right, rect1.bottom);
pDC->SelectClipRgn(&rgn);
// InvalidateRgn(&rgn); CScrollView::OnPrint(pDC, pInfo);
}
pDoc->Draw(&pDC, 0 ,0 m_bColor);
这个函数就是绘制图形的时候用的,绘制图形我用的是类模板!
多谢!bluebohe(薄荷)
我在用你的onprint完后似乎没发现问题
这个就是0.1mm的模式。只是y轴是小于等于0的
这个我知道,可是怎么解决呢?
我重载Onprint()函数得时候,它可以打印出左上角得图形啊
www.vckbase.com上有打印的例子你看看有没有类似的代码,你参考参考