如何在VC 中使用API直接列印

2021-03-31 08:56:31 字數 1343 閱讀 9638

在visual  c++中,應用程式通常是使用cview中提供的列印功能,在onprint()或ondraw()中向印表機輸出。但是對於對話方塊中的資料,或基於對話方塊的程式,列印成了一件繁瑣的工作。  

該段**向使用者提供了printlistctrl()函式,用於列印使用者在對話方塊或formview中的clistctrl(控制項必須是report  view  形式的)控制項中的內容。在列印過程中,根據控制項中每列標題的寬度計算列印輸出時各列的寬度,並根據資料的行數自動分頁。在本**的基礎上稍作修改,就可以適應各種資料的輸出。  

(用法:)該段**使用visual  c++  6.0,  使用windows  api來完成所需功能,使用時將本文本作為標頭檔案使用。列印時直接呼叫printlistctrl(),函式的引數為所要列印的listctrl。?聯絡方法:[email protected].**  

*///該結構用於儲存各列的資訊  

typedef  struct  tagcolatt  

colatt;  

bool  printlistctrl(clistctrl  &list)  

}  

docinfo  di;  

di.cbsize  =  sizeof(docinfo);  

di.lpszdo**ame  =  "listctrl  data  printing";  

di.lpszoutput  =  (lptstr)  null;  

di.lpszdatatype  =  (lptstr)  null;  

di.fwtype  =  0;  

startdoc(pd.hdc,  &di);  

startpage(pd.hdc);  

//調整各列的寬度,以使各列在後面的列印輸出時更均勻的列印在紙上。  

int  space  =  (nhorres-nxmargin*ncharwidth-ncolx)  /  (ncolcount  -1);  

for(i  =1;  i  nmaxlineperpage)  

cstring  subitem  =  list.getitemtext(i,  ca[j].nsubitemindex);  

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;  

如何在VC中使用DbgViewer列印資訊

dbgviewer是乙個很好的列印工具,在mfc下,直接使用outputdebugstring函式就可以列印資訊了,例 退出系統 outputdebugstring 正在退出系統.如果你使用的是win7系統,那麼得更改下登錄檔才能正常顯示列印,更改的登錄檔內如下 windows registry e...

如何在VC6 MFC中使用GDI

gdi 可應用於二維向量圖象,柵格圖象及排版,是為c c 程式設計師而設計的表現為c 類而存在的介面,能用於一切基於windows的應用中。作為gdi的後繼者,gdi 在gdi中增加了新功能,如文字的反鋸齒,漸變筆刷,alpha溶合 也優化了gdi許多已有的功能。此外,gdi 改變了程式設計模式,使...

如何在VC6中使用SGI STL

首先到 sgistl 216k 的zip 包,真是個了不起的傑作 網上都是溢美之詞。將 stl.zip 解壓到乙個目錄,比如 c sgistl 然後在 vc6的 ide環境下,tools options directories include files 將c sgistl 你解壓的目錄 新增進去,...