如何打印通过hdc传过来的图像 HDC hdc; hdc=GetDC(hwnd); MoveToEx(hdc,100,100,NULL); LineTo(hdc,200,200); 想传递这个 hdc 给打印函数,打印出来,如何来实现?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把位图选进DC.再得到一个打印DC.把位图贴到DC里就行了.只要得到打印DC,就跟平时的屏幕DC的操作是一样的了. 能给出一点代码吗?用windows API 来实现 HDC hdcprint;hdcprint=CreateDC(szDriver,szDevice,szOutput,NULL)这样创建之后,如何把要打印的图形放进去打印? void OnPrint(){char szprinter[80]; char *szDevice, *szDriver, *szOutput; HDC hdcprint; static DOCINFO di={sizeof(DOCINFO), "文件名", NULL}; GetProfileString("windows", "device", ", ,,",szprinter,80); if (NULL != (szDevice = strtok(szprinter, ","))&& NULL != (szDriver = strtok(NULL, ","))&& NULL != (szOutput = strtok(NULL, ","))) if ((hdcprint = CreateDC(szDriver, szDevice, szOutput, NULL)) != 0) { if (StartDoc(hdcprint,&di)>0) { StartPage(hdcprint); SaveDC(hdcprint); TextOut(hdcprint, 100, 100, "这是一个API打印例子", 100); MoveToEx(hdcprint, 220, 220, NULL); LineTo(hdcprint, 800, 800);//这里可以选入窗口dc中的位图(即你要打印的图形),或者用DrawState直接绘制在hdcprint上SelectObject(hdcprint, hBitmap);或者绘制位图用DrawState(hdc, NULL, NULL, hBitmap, 0, x, y, cx, cy, DST_BITMAP|DSS_NORMAL) RestoreDC(hdcprint, -1); EndPage(hdcprint); EndDoc(hdcprint); MessageBox(hWnd, "打印测试完毕!", "提示", MB_ICONINFORMATION); } DeleteDC(hdcprint); } else { MessageBox(hWnd, "没有默认打印机,或者没有安装打印机!", "提示", MB_ICONINFORMATION); return; }} 如何清除ADO中_CommandPtr的参数? 关于图像处理中的线选择 紧急求援:vc+ado建立数据库,要求用oracle 谁能给出这个源代码!SOCKET通讯,服务器及客户端都在自己的机器上 大家写VC,是MFC用的多呢,还是直接用SDK? 各位进来看看啊,顶者有分 这么简单的问题,都四天了,我贴了两个帖子,怎么还是没有人来看一看呢,更别说解决了,真的好急啊,在线等待你的帮助! 分割一个窗口 怎样在对话框里加入背景!! Win7操作系统,触摸屏电脑,用手点一下屏幕,会出现一个圈圈效果 怎么动态传值? m_stLine.Empty()中这个Empty()是做什么用的?
用windows API 来实现
hdcprint=CreateDC(szDriver,szDevice,szOutput,NULL)
这样创建之后,如何把要打印的图形放进去打印?
{
char szprinter[80];
char *szDevice, *szDriver, *szOutput;
HDC hdcprint;
static DOCINFO di={sizeof(DOCINFO), "文件名", NULL};
GetProfileString("windows", "device", ", ,,",szprinter,80);
if (NULL != (szDevice = strtok(szprinter, ","))&&
NULL != (szDriver = strtok(NULL, ","))&&
NULL != (szOutput = strtok(NULL, ",")))
if ((hdcprint = CreateDC(szDriver, szDevice, szOutput, NULL)) != 0)
{
if (StartDoc(hdcprint,&di)>0)
{
StartPage(hdcprint);
SaveDC(hdcprint);
TextOut(hdcprint, 100, 100, "这是一个API打印例子", 100);
MoveToEx(hdcprint, 220, 220, NULL);
LineTo(hdcprint, 800, 800);//这里可以选入窗口dc中的位图(即你要打印的图形),或者用DrawState直接绘制在hdcprint上
SelectObject(hdcprint, hBitmap);
或者绘制位图用DrawState(hdc, NULL, NULL, hBitmap, 0, x, y, cx, cy, DST_BITMAP|DSS_NORMAL) RestoreDC(hdcprint, -1);
EndPage(hdcprint);
EndDoc(hdcprint);
MessageBox(hWnd, "打印测试完毕!", "提示", MB_ICONINFORMATION);
}
DeleteDC(hdcprint);
}
else
{
MessageBox(hWnd, "没有默认打印机,或者没有安装打印机!", "提示", MB_ICONINFORMATION);
return;
}
}