社区
界面
帖子详情
vc中怎么打印整个控件的内容的?比如CListCtrl在report模式下
tohell
2005-04-12 07:31:57
如题
...全文
167
6
打赏
收藏
vc中怎么打印整个控件的内容的?比如CListCtrl在report模式下
如题
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhangnanonnet
2005-04-13
打赏
举报
回复
http://www.vckbase.com/code/findcode.asp?mclsid=&sclsid=&keyword=%B4%F2%D3%A1&page=3
ShiGang
2005-04-13
打赏
举报
回复
循壞讀取,然后寫入印表機DC中
cnwolf
2005-04-13
打赏
举报
回复
/*该结构用于存储各列的信息,打印函数使用*/
typedef struct tagColAtt
{
int nColIndex;
CString strColText;
int nPrintX;
int nSubItemIndex;
}
COLATT;
BOOL PrintListCtrl(CListCtrl &list)
{
PRINTDLG pd;
pd.lStructSize = sizeof(PRINTDLG);
pd.Flags = PD_RETURNDC;
pd.hDC = NULL;
pd.hwndOwner = NULL;
pd.hInstance = NULL;
pd.nMaxPage = 1;
pd.nMinPage = 1;
pd.nFromPage = 1;
pd.nToPage = 1;
pd.nCopies = 1;
pd.hDevMode = NULL;
pd.hDevNames = NULL;
AfxMessageBox("由于字段内容较多,请选择横向打印。");
//显示打印对话框,由用户来设定纸张大小等。
if(!PrintDlg(&pd)) return FALSE;
ASSERT(pd.hDC!=NULL);
int nHorRes = GetDeviceCaps(pd.hDC, HORZRES);
int nVerRes = GetDeviceCaps(pd.hDC, VERTRES);
int nXMargin = 2;
int nYMargin = 2;
TEXTMETRIC tm;
GetTextMetrics(pd.hDC, &tm);
int nCharHeight = tm.tmHeight;
int nCharWidth = tm.tmAveCharWidth;
CHeaderCtrl* pHeader = list.GetHeaderCtrl();
//获得行,列的个数
int nColCount = pHeader->GetItemCount();
int nLineCount = list.GetItemCount();
int ColOrderArray[20];
COLATT ca[20];
list.GetColumnOrderArray(ColOrderArray, nColCount);
int nColX =nXMargin*nCharWidth;
int nColXArray[20];
memset(nColXArray,0,20);
nColXArray[0] = nColX;
for (int i =1 ; i<= nColCount; i++)
nColXArray[i] = nColXArray[i-1] + list.GetColumnWidth(i-1);
//检索各列的信息,确定列标题的内容长度。
for(i =0 ; i< nColCount; i++)
{
ca[i].nColIndex = ColOrderArray[i];
LVCOLUMN lvc;
char text[20];
lvc.mask = LVCF_TEXT|LVCF_SUBITEM;
lvc.pszText = text;
lvc.cchTextMax = 20;
list.GetColumn(ca[i].nColIndex, &lvc);
ca[i].strColText = lvc.pszText;
ca[i].nSubItemIndex = lvc.iSubItem;
ca[i].nPrintX = nColXArray[i]*nHorRes/nColXArray[nColCount];
}
DOCINFO di;
di.cbSize = sizeof(DOCINFO);
di.lpszDocName = "打印审计信息查询结果";
di.lpszOutput = (LPTSTR) NULL;
di.lpszDatatype = (LPTSTR) NULL;
di.fwType = 0;
StartDoc(pd.hDC, &di);
StartPage(pd.hDC);
//输出列标题
for(i =0; i<nColCount; i++)
TextOut(pd.hDC, ca[i].nPrintX, nYMargin,
ca[i].strColText, strlen(ca[i].strColText));
int nMaxLinePerPage = nVerRes/nCharHeight -3;
int nCurPage =1;
//输出各列的数据
for(i =0; i<nLineCount; i++)
{
for(int j =0; j<nColCount; j++)
{
if(i+1-(nCurPage-1)*nMaxLinePerPage > nMaxLinePerPage)
{
//新的一页
EndPage(pd.hDC);
StartPage(pd.hDC);
nCurPage ++;
}
CString subitem = list.GetItemText(i, j);
TextOut(pd.hDC, ca[j].nPrintX,nYMargin+(i+1-(nCurPage-1)*nMaxLinePerPage)*nCharHeight,subitem, strlen(subitem));
}
}
EndPage(pd.hDC);
EndDoc(pd.hDC);
//打印结束
DeleteDC(pd.hDC);
return TRUE;
}
wxdvc
2005-04-13
打赏
举报
回复
mark
VC
_
CLi
stCtrl
使用方法
本文将详细介绍如何在对话框
模式
下使用
CLi
stCtrl
控件
,包括
控件
的创建、样式的设置以及添加列等基本操作。 一、
CLi
stCtrl
控件
的创建 在MFC对话框
模式
下,创建
CLi
stCtrl
控件
非常直观。首先,在对话框编辑器
中
,从...
CLi
stCtrl
控件
使用方法总结
CLi
stCtrl
控件
是MFC
中
的一种常用的
控件
,用于显示列表信息。下面是
CLi
stCtrl
控件
使用方法总结。 一、
CLi
stCtrl
风格设置
CLi
stCtrl
控件
有多种风格,包括LVS_ICON、LVS_SMALLICON、LVS_LIST、LVS_
REPORT
等。其
中
,...
CLi
stCtrl
虚拟列表的使用实例
CLi
stCtrl
是MFC库
中
一个非常重要的
控件
,它用于在窗口
中
显示列表项,类似于Windows资源管理器
中
的文件列表。在这个实例
中
,我们关注的是
CLi
stCtrl
的虚拟
模式
,这是一种处理大量数据的高效方法,尤其适用于大数据量的...
扩展风格的
Cli
stctrl
控件
在Windows编程
中
,
CLi
stCtrl
是MFC(Microsoft Foundation Classes)框架
中
用于处理列表视图
控件
的一个类。这个
控件
允许用户显示一系列项,每项可以包含多个列,类似于电子表格。标题所指的“扩展风格的
Cli
stctrl
控件
...
四种
VC
表格
控件
源码
本资源"四种
VC
表格
控件
源码"是一个面向学习者提供的实践教程,包含了四个不同的表格
控件
实现,对于想要深入理解和掌握如何在MFC应用
中
创建和操作表格的人来说,这是一个宝贵的资源。 首先,让我们来看看这四个表格...
界面
15,980
社区成员
115,867
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章