积极答复者
wince 打印相关

问题
-
以下是我在wince中的打印程序,因为暂时没有打印机测试,所以不知道逻辑上有什么问题,请大家帮看看~~~
void print()
{
CDC dcPrinter;
DOCINFO di;
HDC A;
char b[]="xxx";//打印机驱动名
A=CreateDC((LPCWSTR)b,NULL,NULL,NULL);
dcPrinter.Attach(A);
memset(&di,0,sizeof(DOCINFO));
di.cbSize = sizeof(DOCINFO);
di.lpszDocName = _T("Sample Document");
if(dcPrinter.StartDoc(&di) != 0)
{
StartPage(dcPrinter);
dcPrinter.StretchBlt(0,0,0,0,&dcMem,0,0,0,0,SRCCOPY);
EndPage(dcPrinter);
EndDoc(dcPrinter);
}
DeleteDC(dcPrinter); // TODO: 在此添加控件通知处理程序代码
}
答案
-
先问答第一个疑问:
TCLing ,谢谢你的提醒,我之前项目的系统项目是特别定做的,再查阅4。2的文档我才发现,请查看CE帮助如下:
================================
。。。。。。。。。。。。。。。。。。
RemarksThe following CPrintDialog class methods are unique to Windows CE:
CPrintDialog::GetMargins
CPrintDialog::GetPaperSize
CPrintDialog::PrintDraft
MFC for Windows CE does not support the following methods of the CPrintDialog class:CPrintDialog::CreatePrinterDC
CPrintDialog::PrintCollate
CPrintDialog::GetDevMode
CPrintDialog::GetDriverName
CPrintDialog::PrintRange
CPrintDialog::GetFromPage
CPrintDialog::GetToPage
RequirementsWindows CE versions: 2.10 and later
Header file: Declared in Afxdlgs.h
==================================================关于你的第2个问题,其实在上贴中已经有答案了,在下面网地址中有个关于对话框打印的示例,你看看就知道了。
http://www.vckbase.com/code/listcode.asp?mclsid=5&sclsid=511
广交CE高手,共断疑难杂症 :)- 已标记为答案 TCLing 2009年12月24日 3:09
全部回复
-
hi,TCLing,你好,有建议如下:
1. 如果你是因为没有打印机, 可以考虑装个虚拟打印机,网上很多
2. 如果你想你的知道逻辑,对不对装完虚拟打印机调式一下就可以了.
3. 如果你是想知道正确的方法,我附带我以前代码参考如下,
=================
Sorry , 没注意到CODE没复制成功,添加代码参考如下,图形的打印绘制在VIEW中完成。。。。
注释,另外你可以直接在http://www.vckbase.com/code/listcode.asp?mclsid=5&sclsid=511上去找个事例看看。。
BOOL CFrmMain::OnPrinterSetup(LONG wParam,LONG lParam)
{
CPrintDialog dlg(FALSE);
if (dlg.DoModal () ==IDOK)
{
//保存设置你自己确定
}return TRUE;
}LONG CFrmMain::OnPrintWnd(UINT wParam,LONG )
{
..............
CDocWnd* pDoc = CFrmMain::slfFindDocument(wParam);
if (pDoc == NULL)
{
//DOC为NULL就不要打印了
return 0;
}
else
{
//否则找到VIEW从DOC中
pslfView->PostMessage(WM_COMMAND,ID_FILE_PRINT_DIRECT,0);
}
return 0;
}
广交CE高手,共断疑难杂症 :) -
先问答第一个疑问:
TCLing ,谢谢你的提醒,我之前项目的系统项目是特别定做的,再查阅4。2的文档我才发现,请查看CE帮助如下:
================================
。。。。。。。。。。。。。。。。。。
RemarksThe following CPrintDialog class methods are unique to Windows CE:
CPrintDialog::GetMargins
CPrintDialog::GetPaperSize
CPrintDialog::PrintDraft
MFC for Windows CE does not support the following methods of the CPrintDialog class:CPrintDialog::CreatePrinterDC
CPrintDialog::PrintCollate
CPrintDialog::GetDevMode
CPrintDialog::GetDriverName
CPrintDialog::PrintRange
CPrintDialog::GetFromPage
CPrintDialog::GetToPage
RequirementsWindows CE versions: 2.10 and later
Header file: Declared in Afxdlgs.h
==================================================关于你的第2个问题,其实在上贴中已经有答案了,在下面网地址中有个关于对话框打印的示例,你看看就知道了。
http://www.vckbase.com/code/listcode.asp?mclsid=5&sclsid=511
广交CE高手,共断疑难杂症 :)- 已标记为答案 TCLing 2009年12月24日 3:09