打印磁盘中的文件
打印磁盘中的文件可以使用API函数ShellExecute来实现。
语法:
HINSTANCE APIENTRY ShellExecute(HWND hwnd,LPCTSTR lpOperation,LPCTSTR lpFile,LPCTSTR lpParameters,LPCTSTR lpDirectory,INT nShowCmd);
参数说明:
hwnd:窗口句柄。
lpOperation:执行的操作,包括open、print和explore。
lpFile:文件路径。
lpParameters:执行操作的参数。
lpDirectory:指定默认目录。
nShowCmd:是否显示。
例如,打印磁盘中的文件,程序设计步骤如下:
(1)创建一个基于对话框的应用程序,将对话框的Caption属性修改“打印磁盘中的文件”。
(2)向对话框中添加一个群组控件,一个静态文本控件和两个按钮控件。
(3)处理“选择文件”按钮的单击事件,获得选择文件的完整路径,并通过静态文本控件显示出来,代码如下。
void CPrintFileDlg::OnButfile() //“选择文件”按钮单击事件处理函数
{
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"All Files(*.*)|*.*||",AfxGetMainWnd()); //构造文件打开对话框
if(dlg.DoModal() == IDOK) //判断是否按下"打开"按钮
{
CString StrPath = dlg.GetPathName(); //获得文件完整路径
m_Path.SetWindowText(StrPath); //显示文件路径
}
}
(4)处理“打印”按钮的单击事件,在该事件中调用ShellExecute函数实现打印文件的功能,代码如下。
void CPrintFileDlg::OnButprint() //“打印”按钮单击事件处理函数
{
CString StrPath; //声明字符串
m_Path.GetWindowText(StrPath); //获得文件路径
::ShellExecute(NULL,"print",StrPath,"","",SW_HIDE); //打印文件
}
程序运行效果如图1所示。
.jpg)
图1 打印磁盘中的文件
说明:外壳函数ShellExecute不仅可以实现打印磁盘文件的功能,还可以直接运行磁盘中的可执行文件。