怎样判断OnDraw是输出到屏幕还是到打印机

sunyard 2003-11-22 03:34:22
如题
...全文
125 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
myemailcn 2004-01-08
  • 打赏
  • 举报
回复
使用的是打印环境DC,还是显示环境DC即可
bluebohe 2004-01-08
  • 打赏
  • 举报
回复
pDC->IsPrinting()
kalakala 2003-12-22
  • 打赏
  • 举报
回复
这就看你是在哪个设备描述表里面调用绘图函数了,如果使用mfc打印框架,在print()中调用就会输出到打印机,如果在视图类中调用ondraw()就会输出到显示器。
如果用sdk,就看你在哪个描述表了。
SeekTruth 2003-11-24
  • 打赏
  • 举报
回复


ATL_DRAWINFO中不是有一个HDC吗?
carbon107 2003-11-22
  • 打赏
  • 举报
回复
CDC m_pPrintDC;
(这个写在头文件里)

//比如
//下面这些写在打印的函数里
CDC *pDC;
CPrintDialog dlg(FALSE,PD_ALLPAGES | PD_USEDEVMODECOPIES | PD_NOPAGENUMS | PD_HIDEPRINTTOFILE | PD_NOSELECTION,this);
//dlg是打印的那个对话框(设定纸张的)
m_pPrintDC.Attach(dlg.m_pd.hDC);
pDC = &m_pPrintDC;
ASSERT_VALID( pDC );

这时的pDC就是打印机的了

默认的就是视图
zhang_zhibin 2003-11-22
  • 打赏
  • 举报
回复
pDC -> IsPrinting()
flinming 2003-11-22
  • 打赏
  • 举报
回复
屏幕

onprint才是打印。。。。
ljzcom 2003-11-22
  • 打赏
  • 举报
回复
就是楼上说得 那样啦
sunyard 2003-11-22
  • 打赏
  • 举报
回复
用atl开发控件,函数OnDraw(ATL_DRAWINFO& di)中没有CDC对象变量
Pipi0714 2003-11-22
  • 打赏
  • 举报
回复
获取的HDC是屏幕的就是输出到屏幕,是打印机的就是打印机
warmchang 2003-11-22
  • 打赏
  • 举报
回复
使用pDC->IsPrinting()来判断!!
sunyard 2003-11-22
  • 打赏
  • 举报
回复
用atl编写一个控件的时候,OnDraw(ATL_DRAWINFO& di) 并没有CDC的参数

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧