社区
界面
帖子详情
如何用 CPrintDialog 打印一个TXT文档 ??
roger_it
2006-06-14 02:08:23
过路的大虾:
如何用 CPrintDialog 打印一个TXT 文档阿??
例如我要用 CPrintDialog 把 a.txt 给打印出来
怎么把 a.txt 的路径传给 CPrintDialog 阿??
帮助文件中没有提到过这个
晕
...全文
486
13
打赏
收藏
如何用 CPrintDialog 打印一个TXT文档 ??
过路的大虾: 如何用 CPrintDialog 打印一个TXT 文档阿?? 例如我要用 CPrintDialog 把 a.txt 给打印出来 怎么把 a.txt 的路径传给 CPrintDialog 阿?? 帮助文件中没有提到过这个 晕
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hansin
2006-07-03
打赏
举报
回复
用上面的程序应该可以
ianok
2006-06-20
打赏
举报
回复
引用头文件:
#include <fstream>
#include <iostream>
roger_it
2006-06-19
打赏
举报
回复
难道分数还不够??
roger_it
2006-06-16
打赏
举报
回复
各位大哥:
我要求实现的功能是:
做一个按钮,按一下,就会自动弹出 CPrintDialog 的那个对话框,(选择打印机),按确定之后,就自动打印“D:\test.txt",(这个文件肯定存在的)。
要如何实现阿??
谢啦
ianok
2006-06-15
打赏
举报
回复
之前那個笨了,你用這個好了:
ShellExecute(this->m_hWnd, "print", "D:\\test.txt","","", SW_SHOW);
ianok
2006-06-15
打赏
举报
回复
#include <vector>
using namespace std;
void CYouDlg::OnBnClickedButton1()
{
vector<CString> vecTmp;
static char BASED_CODE szFilter[] =
"Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";
CFileDialog fileDlg(TRUE, NULL, "OpenFileDlg", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
szFilter, NULL,0);
if(fileDlg.DoModal() == IDOK){
ifstream ifs;
string str;
ifs.open(fileDlg.GetPathName());
if (!ifs.is_open()) {
throw ;
}
while(!ifs.eof())
{
getline(ifs, str);
vecTmp.push_back(str.c_str());
}
}
CPrintDialog printDlg(TRUE, PD_ALLPAGES|PD_ALLPAGES|PD_NOPAGENUMS, NULL);
if(printDlg.DoModal() == IDCANCEL)
return;
CDC dcPrinter;
PRINTDLG *pPrintDlg = &printDlg.m_pd;
AfxGetApp()->GetPrinterDeviceDefaults(pPrintDlg);
DEVMODE* lpDevMode = (DEVMODE*)::GlobalLock(pPrintDlg->hDevMode);
::GlobalUnlock(pPrintDlg->hDevMode);
lpDevMode->dmPaperSize = DMPAPER_A3; //A3 297 x 420 mm
lpDevMode->dmOrientation = DMORIENT_LANDSCAPE; //橫向
dcPrinter.Attach(printDlg.CreatePrinterDC());
// initialize DOCINFO
DOCINFO docinfo;
memset(&docinfo, 0, sizeof(docinfo));
docinfo.cbSize = sizeof(docinfo);
CString title;
GetWindowText(title);
docinfo.lpszDocName = title;
// if it fails, complain and exit gracefully
if (dcPrinter.StartDoc(&docinfo) < 0)
{
MessageBox(_T("プリンタを初期化できません"));
return;
}
if (dcPrinter.StartPage() < 0)
{
MessageBox(_T("ページ処理を開始できません"));
dcPrinter.AbortDoc();
return;
}
for (size_t i = 0, v = 0; i < vecTmp.size(); ++i) {
dcPrinter.TextOut(0, v, vecTmp[i]);
v += 100;
}
dcPrinter.EndPage();
dcPrinter.EndDoc();
}
roger_it
2006-06-15
打赏
举报
回复
to 楼上的大哥:
再简单点行不行?
我不懂啊
vector是个什么东西啊??
难道 CPrintDialog 就不能像 ShellExcute(..."print"....) 那样只要提供个文件的路径就能打印吗??
ShellExcute 不能选择打印机阿,所以感觉不怎么友好阿。
ianok
2006-06-15
打赏
举报
回复
提個建議:
先把文件讀出來一行一行存放在vector裏面,然後再用CPrintDialog 一行一行打印出來
roger_it
2006-06-14
打赏
举报
回复
自己顶
roger_it
2006-06-14
打赏
举报
回复
help
sos
roger_it
2006-06-14
打赏
举报
回复
继续等...
yubsh
2006-06-14
打赏
举报
回复
codeproject.com上有个分页打印CString的例子。
roger_it
2006-06-14
打赏
举报
回复
抢个沙发吧先
C++关于调用系统默认
打印
机
打印
各种格式的
文档
C++关于调用系统默认
打印
机
打印
各种格式的
文档
int nLen_FilePath = 0; BOOL bResult = FALSE; HRESULT hRet = S_OK; int nRet = 0; CLSID clsid; memset(&clsid, 0x00, sizeof(CLSID)); IUnknown *...
打印
机编程
1.1--
打印
机编程 1.1 .1
打印
机介绍 1.
打印
术语 cpi(characters Per Inch) 每英寸内所含的字符数,用来表示字符的大小、 ... cpl(Characters Per Line)... cps(Character Per Second):每秒所能
打印
的字符个数
第五课——对话框
是
一个
特殊类型的窗口,可作为各种控件(具有独特功能的界面元素)的容器,可用于捕捉和处理用户的多个输入信息或数据。 二、创建对话框 情形一:直接创建
一个
基于对话框的应用程序 情形二:在
一个
应用程序...
MFCWindows
hPreInstance:当前程序的前
一个
实例句柄,在32、64已经废弃了,不使用时为NULL,在16位机器上使用。如果建立win32控制台应用程序,无法运行程序,点属性->连接器->系统->子系统->改成窗口。如窗口句柄,按钮句柄,...
[转贴] Windows编程和面向对象技术 chap5
一个
典型的对话框例子是选择了File-Open命令后弹出的文件对话框. 对话框是一种复杂的用户界面,本章的讨论将围绕对话框和基本控件进行,主要包括以下几点:5.1对话框和控件的基本概念5.2 对话框模板的
界面
15,978
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章